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/
Thanks to Michael and Ken for your replies. I've now got it more or less
working using xsl:for-each-group. However, I've got another problem that I
can't quite work out. Each of the main elements in the result file needs to
have a unique ID attribute. So if my source file is:
<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 this:
<newnode id="1">
<name>Root of my tree</name>
<newnode id="2">
<name>Child of root</name>
</newnode>
<newnode id="3">
<name>Another child of root</name>
<newnode id="4">
<name>Grandchild of root</name>
</newnode>
</newnode>
<newnode id="5">
<name>Yet another child of root</name>
</newnode>
</newnode>
I.e. the id attributes just keep incrementing regardless of the hierarchy.
How do I generate the values of these id attributes?
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>
--~--