我已经导入了一个 xml 文件,现在我遇到了一个让我觉得非常愚蠢的问题:/
XML 结构:
<xml>
<mylist>
<category cat=klank>
<word aw=nk>Word</word>
(there are 12 of these word nodes)
</category>
</mylist>
</xml>
在flash中,我有一个名为curWord的var,它是我类别中随机确定的单词。我不知道我的 xml 中的哪个节点号。
我有一个名为curAw的变量字符串。它需要包含curWord的aw属性。
然后我做到了:
curAw = list.category.(@cat == klank).(word == curWord).@aw
但它不是那样工作的。我不确定会怎样。我花了很多时间尝试东西并搜索网络,但我不确定如何描述我需要知道的内容,所以我找不到任何东西。
与往常一样,非常感谢您的帮助:)
有几件事。我认为您需要引用属性的值(如果我不这样做,至少我会在 Flash CS5 中出现错误)。密切关注控制台上的错误以捕获此类事情。此外,myList
是节点层次结构的一部分,因此您需要通过该层次结构引用category
节点。
您也许可以在不循环的情况下做您想做的事情,但我在文档中看不到一种方法。但是,您绝对可以通过循环访问所选category
中的单词节点来获取所需的值,如下所示:
var list:XML = new XML('<xml><mylist><category cat="klank"><word aw="nk">Word</word><word aw="ok">Word2</word><word aw="pk">Word3</word></category></mylist></xml>');
var curWord = 'Word';
var words:XMLList = list.mylist.category.(@cat == 'klank').word;
// Loop over the word nodes from the selected category
for each(var word:XML in words)
{
// Find the node with value matching curWord
if (word.text() == curWord) {
trace(word.@aw);
}
}
不循环:
list.mylist.category.(@cat == "klank").word.(text()==curWord).@aw