AS3:如何获取具有特殊属性的所有XML节点?(与苏奇一起)
挑战: 我想收集属性为“id”的所有节点 问题: 该代码不适用于嵌套节点AS3:如何获取具有特殊属性的所有XML节点?(与苏奇一起),xml,flash,actionscript-3,Xml,Flash,Actionscript 3,挑战: 我想收集属性为“id”的所有节点 问题: 该代码不适用于嵌套节点 <?xml version="1.0" encoding="utf-8"?> <contentmap> <fonts id="fonts"> <font id="Arial" name="RicolaArial">fonts/Arial.swf</font> </fonts> <plugin id="library_main"
<?xml version="1.0" encoding="utf-8"?>
<contentmap>
<fonts id="fonts">
<font id="Arial" name="RicolaArial">fonts/Arial.swf</font>
</fonts>
<plugin id="library_main" name="theName">swf/library_main.swf</plugin>
</contentmap>
试着用..*代替*
我不确定,但您可以查看operators文档进行检查:只需使用_xml..@id即可
private function onXMLLoader(event : Event) : void {
_xml = _loader.getXML(event.target.url.url);
var searchTerms : XMLList = _xml.*.(hasOwnProperty('@id'));
if (searchTerms.length() > 0 ) {
_NodeArray = new Array();
_parseNode(searchTerms);
}
}
private function _parseNode(xml : XMLList) : void {
for each (var node: XML in xml) {
if(!node.hasSimpleContent()) {
_parseNode(node.children());
} else {
var nodeObject : Object = new Object();
nodeObject['value'] = node.text();
for each(var a:XML in node.@*) {
var name : String = String(a.name());
nodeObject[name] = a.toXMLString();
}
_NodeArray.push(nodeObject);
}
}
}