You'll find a description of an XSLT 2.0 stylesheet that does this (and some
other things besides) at
http://www.idealliance.org/proceedings/xml04/papers/111/mhk-paper.html
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Rowan Sylvester-Bradley [mailto:rowan(_at_)sylvester-bradley(_dot_)org]
Sent: 12 October 2008 18:44
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Creating Hierarchy
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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--