0

我已经导入了一个 xml 文件,现在我遇到了一个让我觉得很愚蠢的问题:/

xml结构:

<xml>
 <mylist>
  <category cat=klank>
   <word aw=nk>Word</word>
   (there are 12 of these word nodes)
  </category>
 </mylist>
</xml>

在 Flash 中,我有一个名为curWord的变量,它是从我的类别中随机确定的单词。我不知道它在我的 xml 中是哪个节点号。

我有一个名为curAw的变量字符串。它需要包含curWord的 aw 属性。

然后我做了:

curAw = list.category.(@cat == klank).(word == curWord).@aw

但它不是那样工作的。我不确定会发生什么。我花了一个小时尝试东西并搜索网络,但我不确定如何描述我需要知道的内容,所以我找不到任何东西。

与往常一样,非常感谢您的帮助:)

4

2 回答 2

2

有几件事。我认为你需要引用你的属性值(如果我不这样做的话,至少我会在 Flash CS5 中得到一个错误)。密切注意控制台上的错误以捕捉这类事情。此外,myList它是节点层次结构的一部分,因此您需要category通过它引用节点。

您可能无需循环就可以做您想做的事,但我在文档中看不到方法。但是,您绝对可以通过在 selected 中循环遍历单词节点来获得所需的值,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);
    }
}
于 2013-09-06T13:04:10.493 回答
1

没有循环:

list.mylist.category.(@cat == "klank").word.(text()==curWord).@aw
于 2013-09-06T13:22:08.640 回答