2016-04-21 85 views
0

我转发我的问题,保持简单。XML检查节点Actionscript 3

我有以下XML数据

<lang> 
 
    <common> 
 
    <newnode>testTagInput</newnode> 
 
    </common> 
 
    <common> 
 
    <gameIds> 
 
     <game5>testTagInput</game5> 
 
    </gameIds> 
 
    </common> 
 
</lang>

正如我们看到的,我有2次常见。是否有可能为两者返回common.children()?

我这个编码...

var XMLTree:Array=["common","common.newnode","common","common.gameIds","common.gameIds.game5"] 
     var XMLListNodes:XMLList = loadXML[XMLTree[0]].children(); 
     for each (var subnodes:XML in XMLListNodes) 
     { 
      trace (subnodes); 
     } 

是否有可能在同一时间返回大于1级的节点吗?怎么样 ?

回答

1

这会给你1级(嵌套的第一级)和等级2(嵌套的所有级别)儿童:

 var xml:XML = <lang> 
      <common> 
       <newnode>testTagInput</newnode> 
      </common> 
      <common> 
       <gameIds> 
        <game5>testTagInput</game5> 
       </gameIds> 
      </common> 
     </lang> 

     var commonChildrenLevel1:XMLList = xml.common.*; 
     trace("level1:", commonChildrenLevel1.length()); 

     var commonChildrenLevel2:XMLList = xml.common..*; 
     trace("level2:", commonChildrenLevel2.length()); 

输出:

[trace] level1: 2 
[trace] level1: 5 

凡2是孩子<newnode><gameIds>和5 - <newnode>,<gameIds>,<game5>和两个文本节点testTagInputtestTagInput

+0

你可以带一个看,我的第二个代码? – Glowhollow

0

好的,那听起来不错。但为什么这个代码不起作用?

 _XMLTree:Array = ["common","common.newnode","common.gameid"] 
     var counter:int = _XMLTree.length; 

     for (var i:int = 0; i < counter; i++) 
     { 
     var childrenlevel2:XMLList = xmlinhalt[_XMLTree[i]].*; 
     trace ("test="+childrenlevel2) 
     } 

xmlinhalt是一个XML文件

1

如果您知道XML结构,并知道从第一和第二<common>会发生什么事情,你可以解决这些问题作为

  • XMLListNodes.common [ 0] .newnode
  • XMLListNodes.common [1] .gameIds