2011-03-02 66 views
1

我有一些看起来像这样如何从Flex中/的Actionscript XML检索节点名称

<root xsi:noNamespaceSchemaLocation="test1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <configuration> 
    <CLICK/> 
    <KLT/> 
    <DETd/> 
    </configuration> 
</root> 

我得到使用

VAR结果配置的列表数据的XML数据:的XMLList = 。xml.configuration *;

现在我想遍历XMLList并输出CLICK,KLT,DETd等,但如何在XML我会得到节点名这样

回答

7

XML:

<root> 
    <parentNode> 
     <childNode1>1</childNode1> 
     <childNode2>2</childNode2> 
     <childNode3>3</childNode3> 
    </parentNode> 
</root> 

所有您需要do使用.name(),同时通过parentNodechildren()进行迭代。

for(var i:int=0;i<xml.children()[0].children().length();i++) 
{ 
    var currentNode:XML = xml.children()[0].children()[i]; 
    trace(currentNode.name()); 
} 

//childNode1 
//childNode2 
//childNode3 

更多:

  1. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XMLList.html
  2. http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/XML.html
1

只需使用name的访问。

for each (var prop:XML in xml.configuration.*) 
{ 
    trace(prop.name()); 
} 

你有xml.configuration.*列出需要什么,所以你是在那里的一半。只需将每个元素作为迭代中的XML(每个循环都带一个)。

1

您可以使用名称()方法中的任何XML节点上,像这样:

for each(var n:XML in results){ 
    trace(n.name()); 
} 

将输出:

CLICK 
KLT 
DETd 
相关问题