Description: Function that takes the values array (3rd parameter) from xml_parse_into_struct, which is a 1-D array, and parses it into a nested array for easier traversal.
XMLST_To_NESTED : by Dan Watt (firstname.lastname@example.org)
Full Name : XML Structure to nested array
Purpose : xml_parse_into_struct produces two 1-dimensional arrays: One for all of the tags (values), and one for "looking up" (index)
these tags. Well, this function takes the values array and parses it into a nested array for much faster traversal.
Notes : Not 100% Tested. Preserves all of the original structure data. Not tested on large files, so I can't guarantee speed at all
Why : I was not pleased in having to either: 1) manually traverse and splice the value array, or 2) Using the index array to find
the position of a tag (which also added the trouble of determining the parents of a given element). This method makes the data
a little more structured for my purposes, and I figured someone else might find it handy.
Version 1.01: Fixed minor count issue, $c-$i-2 to $c-$i-1. Was preventing close tags from being placed in the appropriate place.
for ($i=0; $i<count($xmlstruct); $i++)
for ($c=$i+1; (($c<count($xmlstruct)) AND ($found!=TRUE)); $c++)
if (($xmlstruct[$c]["level"]==$xmlstruct[$i]["level"]) AND ($xmlstruct[$c]["tag"]==$xmlstruct[$i]["tag"]) AND ($xmlstruct[$c]["type"]=="close"))