This is what recursion is for. In your template that matches "item" output the value of the first text node
"text()[1]", then apply-templates again. That will call the "item" template again. Your transformer
will automatically stop processing when the source document runs out of "item" elements.
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email
-----Original Message-----
From: David Elsmore <delsmore(_at_)brookes(_dot_)ac(_dot_)uk>
Sent: Thu, 05 Feb 2004 12:09:33 +0000
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] outputting unknown amount of child elements
Given the following consisting of embedded elements with a common name:
<items>
<item>Level 1
<item>Level 2
<item>A</item>
<item>B</item>
<item>Level 3
--- etc.----
</item>
</item>
<item>
</items>
How can I process this so all child elements (regardless of the depth)
are outputted in a way that mirrors the structure structure of the
original document. For example the uoutput may look something like this:
Heading Level 1
Heading Level 2
A
B
Heading Level 3
I would find this straightforward if there was a fixed number of levels
but in this case the amount varies and is unknown.
Thanks for your help
--
David Elsmore
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list