views:

705

answers:

2

Hi there

The Challenge:

i d like to collect all nodes with the attribute "id".

The Problem:

The code doenst work with nested nodes.

<?xml version="1.0" encoding="utf-8"?><contentmap><fonts id="fonts">

fonts/Arial.swf swf/library_main.swf

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

} }

+1  A: 

try ..* in place of .* I'm not sure, but you can take a look in the operators documentation to check it: http://livedocs.adobe.com/flex/gumbo/langref/operators.html

ruyadorno
A: 

just use _xml..@id

Guro Khundadze