[xsl] Creating Hierarchy

Subject: [xsl] Creating Hierarchy
From: "Rowan Sylvester-Bradley" <rowan@xxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 12 Oct 2008 18:44:25 +0100
Hi,

I have an XML file that represents a tree of data elements, similar to a directory tree. The structure of the file has every node in the tree represented by a <node> element, all children of the root, with the hierarchy defined by a <level> element within each node. So the <node> with <level> = 0 is the root of the tree, its children have <level> = 1, their children have <level> = 2 etc. Here's an example:

<mytree>
 <node>
   <name>Root of my tree</name>
   <level>0</level>
 </node>
 <node>
   <name>Child of root</name>
   <level>1</level>
 </node>
 <node>
   <name>Another child of root</name>
   <level>1</level>
 </node>
 <node>
   <name>Grandchild of root</name>
   <level>2</level>
 </node>
 <node>
   <name>Yet another child of root</name>
   <level>1</level>
 </node>
</mytree>

I want to transform this into a hierarchical file like this:

<newnode>
 <name>Root of my tree</name>
 <newnode>
   <name>Child of root</name>
 </newnode>
 <newnode>
   <name>Another child of root</name>
   <newnode>
     <name>Grandchild of root</name>
   </newnode>
 </newnode>
 <newnode>
   <name>Yet another child of root</name>
 </newnode>
</newnode>

How do I write a stylesheet to do this?

Thanks - Rowan

Current Thread