【发布时间】:2012-04-07 10:58:01
【问题描述】:
我这里有这个 XML 文件。
<?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>
然后,一旦页面完成加载,我将加载它们并将这些单词存储在一个名为 word 的数组中
$(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
所以我假设 word[0] 是这样的,word[0] = "RIP PIE PIER RIPE SPIRE SPIDER "
但是当我这样做时“
var x = word[0].split(" ");
alert(x[0]);
它没有给我“RIP”这个词
知道为什么会这样吗?我想剖析words[0](来自xml)中的所有单词,然后拆分这些单词并将这些单词存储在一个数组中,但它似乎不知道为什么?
【问题讨论】:
-
您没有问,但是....您在该 XML 文件中使用的架构有点多余且不是最佳的。为什么要使用元素名称来指示其值的长度?长度很容易计算,甚至可以在需要时用于元素选择(例如,“word[7] 下的所有 3 个字母单词”)。如果您可以控制 XML 数据的形状,我建议您将所有这些子元素都转换为纯文本,并用空格连接它们。 (我假设没有单词中有空格)。
<root><word><children>rip ripe pier spire...</children></word>...
标签: javascript jquery xml arrays split