2012-04-07 51 views
0

我在此處具有此XML文件。從XML文件中檢測一組單詞並將它們存儲在JavaScript中的數組中

<?xml version="1.0" encoding="UTF-8"?> 
<xml> 

<word> 
    <threeletter>RIP</threeletter> 
    <threeletter>PIE</threeletter> 
    <fourletter>PIER</fourletter> 
    <fourletter>RIPE</fourletter> 
    <fiveletter>SPIRE</fiveletter> 
    <sixletter>SPIDER</sixletter> 
</word> 

<word> 
    <threeletter>SUE</threeletter> 
    <threeletter>USE</threeletter> 
    <fourletter>EMUS</fourletter> 
    <fourletter>MUSE</fourletter> 
    <fiveletter>SERUM</fiveletter> 
    <sixletter>RESUME</sixletter> 
</word> 
</xml> 

然後一旦頁面加載完成

$(document).ready(function() { 

    $.ajax 
    ({ 
     url: "dictionary.xml", 
     success: function(xml) 
     { 
      $(xml).find("word").each(function() 
      { 
      words.push($(this).text()); 
      }); 
     }  
    }); 

})

,我會加載它們,並存儲這些詞在陣列一句話叫然後當我訪問alert(word[0])每個內容它顯示我這個結果

RIP 
PIE 
PIER 
RIPE 
SPIRE 
SPIDER 

所以我假設字[0]是一些荷蘭國際集團這樣的,word[0] = "RIP PIE PIER RIPE SPIRE SPIDER "

但是當我這樣做「

var x = word[0].split(" "); 
        alert(x[0]); 

它不給我一句話‘RIP’ 任何想法,爲什麼會出現這種情況?我想要檢查words[0](來自xml)中的所有單詞,然後分割這些單詞並將這些單詞存儲在一個數組中,但它似乎無法解釋爲什麼?

+0

你沒問,但....你在XML文件中使用的架構是有點冗餘和非最優的。爲什麼要用元素名稱來表示其值的長度?該長度很容易計算,甚至可以用於元素選擇(如果需要)(例如,「字[7]」下的所有3個字母的單詞)。如果您可以控制XML數據的形狀,我建議您將所有這些子元素轉換爲文本,然後用空格將它們連接起來。 (我認爲沒有任何文字中有空格)。 ' rip成熟的碼頭尖頂... ...' – Cheeso 2012-04-07 15:10:11

回答

1

可能是這樣的

$.ajax({ 
    url: 'dictionary.xml', 
    async: false, 
    success: function(xml) { 
     $(xml).find("word").each(function(index) { 
      words[index] = []; 
      $(this).children().each(function() { 
       words[index].push($(this).text()); 

      }); 
     }); 

    }, 
    dataType: 'XML' 
}); 
console.log(words[0]); 
console.log(words[1]);​ 
+0

索引是未定義的錯誤。 – user962206 2012-04-07 11:30:35

+0

你確定,因爲它完美的工作,這就是我在我的控制檯,文字[0]和文字[1] [「RIP」,「PIE」,「PIER」,「RIPE」,「SPIRE」 ,「SPIDER」] [「SUE」,「USE」,「EMUS」,「MUSE」,「SERUM」,「RESUME」] – Dhiraj 2012-04-07 11:50:26

+0

做你的console.log或警報裏面的成功功能 – Dhiraj 2012-04-07 11:54:09

相關問題