Subject: Re: following nodes until "stop-node" reached (content between two nodes)
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Tue, 8 Apr 2008 18:19:12 +0530
|
I guess this might work ...
//somenode[@value =
'start']/following-sibling::node()[following-sibling::somenode[@value
= 'stop']]
(not tested)
On 4/8/08, jakob Beetz <mailinglists.jakob@xxxxxxxxx> 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
--
Regards,
Mukul Gandhi
|