So what I am after is (I suppose) a special template for the last <item> in
a <list> which is followed by one or more siblings whose names match a list
of permitted "followers", and a null template for any of these followers
which have a <list> amongst their preceding siblings, and which only have
permitted "followers" between themselves and the nearest <list>.
I'm finding that difficult enough to specify in English, and it's certainly
beyond me in XSL. Has anyone solved this kind of structural problem before?
Not surprisingly it's easier to say these things in xpath (or as here,
xslt patterns) than it is to say them in english, as that's the point of
having two (or more) languages:-)
<xsl:template match="list[following-sibling::*[1][self::indent or
self::otherfollower]
/
item[not(following-sibling::item)]">
.... last item in a list followed by an indent or otherfollower
</xsl:template>
<xsl:template match="indent[preceding-sibling::*[not(self::indent or
self::otherfollower)]
[1][self::list]"/>
<xsl:template match="otherfollower[preceding-sibling::*[not(self::indent or
self::otherfollower)]
[1][self::list]"/>
I think they probably answer your question, although it may be
(depending what output you are making) that the problem is best
approached as a "grouping problem". and use one of the stabdard xslt 1
grouping idioms (eg using keys) or xslt2 grouping instructions.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--