2012-04-07 48 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

相关问题