AS3 Flash CC XML需要查找一个节点的属性,节点号未知



我已经导入了一个 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

最新更新