【问题标题】:AS3 Flash CC XML need to find the attribute of a node, node number unknownAS3 Flash CC XML需要找到一个节点的属性,节点号未知
【发布时间】:2013-09-10 12:33:49
【问题描述】:

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

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

一如既往,非常感谢您的帮助 :)

【问题讨论】:

  • 您的根节点是 mylist 但您通过列表 (list.category...) 引用它。是不是打错字了?
  • @net.uk.sweet 不是错字。我将 xml 导入为 var list:XML = (load xml and stuff data in var)
  • 您如何从您的类别中获得随机确定的单词?检索时不能获取属性吗?
  • @net.uk.sweet 如果可以的话,我会的。我有一个数组,其中包含来自不同班级的(一到三个)单词,我在这个班级中随机填充到(3 -12)个单词。有点复杂。
  • 总是很复杂;)

标签: xml actionscript-3 actionscript traversal flash-cs6


【解决方案1】:

没有循环:

list.mylist.category.(@cat == "klank").word.(text()==curWord).@aw

【讨论】:

    【解决方案2】:

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

    您可以在不循环的情况下做您想做的事,但我在documentation 中看不到方法。但是,您绝对可以通过循环选择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);
        }
    }
    

    【讨论】:

    • 别担心我的代码:如果我必须在这里提出问题,我经常会简化一段长篇文章。但我意识到,对于需要所有可能的信息来帮助解决问题的人来说,这可能会很烦人。
    • 无论如何,我一直在寻找但在任何地方都找不到血腥的作品是 wood.text()。你帮了我很大的忙,可能让我度过了一个周末,谢谢:)
    猜你喜欢
    • 2012-04-01
    • 1970-01-01
    • 2019-12-18
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 2014-02-13
    相关资源
    最近更新 更多