AS3:如何获得具有特殊属性的所有XML节点? (有了酸)

时间:2009-08-20 20:47:15

标签: 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" name="theName">swf/library_main.swf</plugin>
</contentmap>

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);
    }
  }
}

2 个答案:

答案 0 :(得分:1)

尝试.. *代替。* 我不确定,但您可以查看运营商文档来检查它:http://livedocs.adobe.com/flex/gumbo/langref/operators.html

答案 1 :(得分:1)

只需使用_xml .. @ id