cant remember where i found this, but i use it quite a lot. Just drop the
xml root node in as your source node and it will return an array of all node
names that match your query string.

/*
** Function:     findAllTag(source:XMLNode, key:String):Array
**
** Purpose:     Recursively searches for, then returns an array
**                of all XMLNodes whose name match the key.
**
**    Accepts:     source:XMLNode - node to begin the search at
**                key:String - string to seach nodeNames for
**    Returns:    an array of all XMLNodes whose name match the
**                key (case insensitive)
**
*/
function findAllTag(source:XMLNode, key:String):Array {
   var array:Array = new Array();
   var currentNode:XMLNode = source;
   while (currentNode != null) {
       //search root node - case insensitive
       if (currentNode.nodeName.toLowerCase() == key.toLowerCase()) {
           array.push(currentNode);
       }
       if (currentNode.hasChildNodes()) {
           var tempNode:XMLNode = currentNode.firstChild;
           // recursively search all child nodes
           var tempArr:Array = findAllTag(tempNode, key);
           for (var i = 0; i < tempArr.length; ++i) {
               array.push(tempArr[i]);
           }
       }
       // then search siblings of the root node
       currentNode = currentNode.nextSibling;
   }
   return array;
}


On 27/02/07, Tom Klepl <[EMAIL PROTECTED]> wrote:

Thanks for the reply.. unfortunately this only returns matching nodes
below the parent node specified. What I need is to crawl the XML tree
and find ALL matching nodes, regardless of where they are in the tree.

Tom

Quoting [EMAIL PROTECTED]:

> I believe:
>
> XPathAPI.selectNodeList(node,"/*/nameOfNode");
>
> will return an array of all child nodes with "nameOfNode" as their
nodeName
>
>
> On Feb 23, 2007, at 5:39 PM, Tom Klepl wrote:
>
>> Hi..
>>
>> I am working on a project currently and I'm using Macromedia's
>> XPathAPI. However, I need to recursively search one of my XML files
>>  which is 4 or 5 levels deep. The search I want to perform should
>> return all nodes with a specified name, no matter where they are in
>>  the hierarchy.
>>
>> Can anyone suggest/point me to a solution? I don't want to use
>> xfactorstudio's API due to its size. I am thinking of extending
>> XPathAPI.
>>
>> Thanks.
>>
>> _______________________________________________
>> Flashcoders@chattyfig.figleaf.com
>> To change your subscription options or search the archive:
>> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>>
>> Brought to you by Fig Leaf Software
>> Premier Authorized Adobe Consulting and Training
>> http://www.figleaf.com
>> http://training.figleaf.com
>>
>
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com



_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to