xsl-list
[Top] [All Lists]

xslt 2.0: grouping flat element structures to make lists

2005-05-25 11:07:14
Hello

Using XSLT 2.0 (running Saxon 8.4) I am grappling with a pretty standard
grouping issue, attempting to utilize some of XSLT v2 grouping possibilities
but with no success (reading the W3C spec and a scan of the archive haven't
proved helpful, MK book is on order!).

Mid flow I have:

..
..
<par class="Listbegin">Fruit</par>
<par class="Listitem>Apple</par>
<par class="Listitem>Orange</par>
<par class="Listitem>Pear</par>
<par class="Listbegin">Colours</par>
<par class="Listitem>Red</par>
<par class="Listitem>Green</par>
<par class="Listitem>Blue</par>
..
..

I just need to output

..
..
<list>
        <head>Fruit</head>
        <item>Apple</item>
        <item>Orange</item>
        <item>Pear</item>
</list>
<list>
        <head>Colours</head>
        <item>Red</item>
        <item>Green</item>
        <item>Blue</item>
</list>

Note: I'm midway through processing any section when I encounter the <par
class="Listbegin">. The signal that a list has ended can be any
following-sibling that isn't <par class="Listitem>..</par> or the end of the
parent element I'm in. Of course, lists don't always come in pairs like
above.

Should I try to match on the <par class="Listbegin"> then scoop-up all
relevant following nodes, which was my strategy up to now? Haven't been able
to find a way to scoop-up only the following nodes that are relevant.

Any advice gratefully received. Numerous attempts using for-each-group and
various group-by strategies have been fruitless, probably I just haven't
quite grasped it!

Thanks

Derek Revill




--~------------------------------------------------------------------
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>
--~--