AS3: Как получить все XML-узлы со специальным атрибутом? (С надрывом) - PullRequest
0 голосов
/ 21 августа 2009

Задача:

Я хотел бы собрать все узлы с атрибутом «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 ]

1 голос
/ 04 ноября 2009

просто используйте _xml .. @ id

1 голос
/ 21 августа 2009

попробуй .. * вместо. * Я не уверен, но вы можете посмотреть в документации оператора, чтобы проверить это: http://livedocs.adobe.com/flex/gumbo/langref/operators.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...