【问题标题】:How can I find Nth element of an xml object如何找到 xml 对象的第 N 个元素
【发布时间】:2015-11-15 23:23:21
【问题描述】:

我正在尝试获取 xml 文件元素的子元素。我尝试使用嵌套循环,例如:

for each (var tempNode:XML in menu_xml.elements())
{
    if (tempNode.children().length() > 0)

但是无法做到这一点。即使此代码有效,它也会获得有限阶段的元素。

如何逐个获取子元素,或者有更简单的方法吗?

编辑:这是示例 xml 内容:

<mainmenu>

    <home/> 
    <portfolio/> 
    <contact/> 
    <friends>
        <bestfriends>
            <joe/> 
            <karen/> 
            <bob/> 
        </bestfriends>
        <otherfriends>
            <john/>
            <peter/>
        </otherfriends>
    </friends>

    <animals>

        <cat/>
        <dog/>
        <horse/>

    </animals>

</mainmenu>

编辑 2:我还没有决定如何使用这些节点。假设我将它们解析为一个数组。 arr[3][0][0] 应该是 joe。

【问题讨论】:

  • 使用递归函数怎么样?
  • 感谢您的回答。我不认为它比循环更特别。但如果你能给我一个例子,我会很高兴。
  • @onurcano22 你能开始提供一个例子吗?到目前为止,我完全不清楚 XML 文件是什么样的,您想要访问其中的哪些元素以及您想要对它们做什么。请详细说明!
  • @onurcano22 这是一个基本的例子:var testXML:XML = &lt;root&gt;&lt;l1&gt;&lt;l2&gt;&lt;l3/&gt;&lt;/l2&gt;&lt;/l1&gt;&lt;/root&gt;; trace(getNames(testXML)); //recursive function getNames(xml:XML):String{ var result:String = xml.localName(); var childrenLen:int = xml.children().length(); if(childrenLen &gt; 0){ for(var i:int = 0 ; i &lt; childrenLen; i++) result += "-&gt;"+getNames(xml.children()[i]); } return result; } 你应该能够通过循环实现同样的效果......关于递归,这是一个简单的问题,而不是效率
  • @GeorgeProfenza 我正在使用您的代码。我会告诉它是否有效。

标签: actionscript-3 actionscript flash-cc


【解决方案1】:

【讨论】:

  • 抱歉回复晚了,我试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
  • 2014-07-06
相关资源
最近更新 更多