No, but it should be pretty easy to write one using the XML parser routines. The PHP documentation for xml_parse_into_struct suggests that it doesn't create a nested (aka multidimensional) array that mimics the structure of the XML.
You first need to come up with a reasonable array structure. Looking at your XML, I can't tell how you would even write a simple algorithm to come up with that array to begin with.
For starters, your root element, <menu>, is represented in the array version as the VALUE of the "TAG" index.
Other tags, however, are represented as INDEXES (aka KEYS) into the array. E.g., <name> and <sections>.
Still other tags are not represented by name in the array at all... where are your <section> tags represented in your array?
What you need to do is put some thought into what your resulting array should look like. Then, whipping up the code to create that array shouldn't be too difficult...
You can also create an object-oriented tree structure where each tag is represented by a TreeNode class. If you have attributes in the tag, they can be represented by members of that class. Child tags can be stored in an array of child TreeNodes.
Take care,
Nik
http://www.bigaction.org/