Assuming you know there is only one "start" node and one "stop" node:
In XSLT 2.0
<xsl:variable name="start" select="*[(_at_)value='start']"/>
<xsl:variable name="stop" select="*[(_at_)value='stop']"/>
<xsl:for-each select="$start/following-sibling::*[. << $stop] | $stop">
...
</xsl:for-each>
In 1.0
<xsl:variable name="start" select="*[(_at_)value='start']"/>
<xsl:for-each select="$start/following-sibling::*[(_at_)value='stop' or
following-sibling::*/@value='stop']>
...
</xsl:for-each>
There are lots of other solutions. The most elegant use recursion, but
beginners tend to find that difficult.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: jakob Beetz [mailto:mailinglists(_dot_)jakob(_at_)gmail(_dot_)com]
Sent: 08 April 2008 13:41
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] following nodes until "stop-node" reached
(content between two nodes)
Dear XSLers,
given s.th. like
[...]
<somenode value="start">Heading</somenode>
<a/>
<b>text goes here </b>
<b>unpredictable</b>
<a>dasdf</a>
<somenode value="stop">something else</somenode> [...]
how would I select anything (but not including) that is
between "somenode" with the attribute "start" and "stop"?
This is my beginers approach:
<xsl:template match="//somenode[(_at_)value='start']">
<xsl:element name="entity">
<xsl:value-of select="."/>
</xsl:element>
<xsl:for-each select="following-sibling::*">
<td><xsl:value-of select="."/></td>
</xsl:for-each>
</xsl:template>
how do check wether the current node in the for-eachnode is
the "somenode"-node with "stop" as attribute value? Can I
"break out" of for each or somehow if-then the inclusion of
anything that comes _after_ that?
As you probably see I do not have a really good undstanding
of XSL/XPATH. Browsing the docs and XSL FAQ did not make me
wiser either.
Any help is greatly appreciated
Thanks in advance and
Cheers
Jakob
--~------------------------------------------------------------------
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>
--~--