20.6.读取XML树中的元素

问题
我想读取XML对象中的子元素
解决办法
使用elements( ) 方法返回XMLList 类型的所有元素,并用for each 循环遍历
讨论
E4X提供了一个很方便的elements( ) 方法,该方法返回所有XML对象的子元素节点,再通过for each 循环即可访问整个XML树结构:
+展开
-ActionScript
var menu:XML = <menu>
<menuitem label="File">
<menuitem label="New"/>
</menuitem>
<menuitem label="Help">
<menuitem label="About"/>
</menuitem>
This is a text node
</menu>;
for each ( var element:XML in menu.elements( ) ) {
/* 显示:
File
Help
*/

trace( element.@label );
}

从上面的例子中我们看到elements( ) 方法只返回下一级的子元素节点,这里面不包括文本节点和下一级节点,要向访问整个XML结构,还需进行递归循环处理:
+展开
-ActionScript
var menu:XML = <menu>
<menuitem label="File">
<menuitem label="New"/>
</menuitem>
<menuitem label="Help">
<menuitem label="About"/>
</menuitem>
This is a text node
</menu>;
/* 显示:
File
New
Help
About
*/

walk( menu );
// A recursive function that reaches every element in an XML tree
function walk( node:XML ):void {
// Loop over all of the child elements of the node
for each ( var element:XML in node.elements( ) ) {
// Output the label attribute
trace( element.@label );
// Recursively walk the child element to reach its children
walk( element );
}
}

加支付宝好友偷能量挖...


评论(0)网络
阅读(67)喜欢(0)flash/flex/fcs/AIR