【问题标题】:to get leaf nodes directly in actionscript直接在actionscript中获取叶节点
【发布时间】:2011-08-27 00:50:25
【问题描述】:

在我不知道叶节点名称/或它们的深度级别的复杂 XML 中,如何直接提取 XMLList 变量中的所有叶节点?

谢谢。

【问题讨论】:

  • 您能分享一个示例 xml 结构,还是希望它是通用的?
  • 我希望它是通用的......我知道我可以使用某种递归函数来检查节点是否有任何子节点并保持它这样做直到我到达叶节点(存储所有这样的叶单独的 xmllist 变量中的节点)。但这听起来令人厌烦和无聊。我正在寻找一种更简洁的方法,它可以使用一些 ECMA 语法并轻松完成。谢谢。

标签: actionscript-3 apache-flex flex3


【解决方案1】:

由于到目前为止没有人回复,我假设对于通用 XML 来说,使用 ECMA 来实现这一点并不容易......这使得 UDF 成为唯一的选择(该函数将递归地继续检查是否有任何孩子离开了——如果没有,那就是一片叶子)。

谢谢各位。

【讨论】:

    【解决方案2】:
            /**
             * function to check for the leaf nodes and return 
             * an XMLListCollection of leaf nodes. Give it 
             * your xml and an empty object of XMLListCollection for result.
             **/
            private function leafNodes(x:XML, retList:XMLListCollection):void {
                var xlist:XMLList;
                xlist = x.children();
    
                if (x.children().length() == 0) { // leaf node
                    retList.addItem(x);
                    return;
                }
    
                for each (var it:XML in xlist) 
                    leafNodes(it, retList);
    
                return;
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 2017-05-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      相关资源
      最近更新 更多