Re: [xsl] following nodes until "stop-node" reached (content between two nodes)

Subject: Re: [xsl] following nodes until "stop-node" reached (content between two nodes)
From: Chris von See <chris@xxxxxxxxxxxxx>
Date: Tue, 8 Apr 2008 08:28:02 -0700
If your "heading" nodes are always at the same level can you use something like <xsl:for-each-group select="*" group-starting- with="somenode[@value='start']">? There's an example of this technique in the XSLT 2.0 spec which appears to be similar to what you want.

Cheers
Chris


On Apr 8, 2008, at 5:41 AM, jakob Beetz wrote:


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[@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

Current Thread