xsl-list
[Top] [All Lists]

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

2008-04-08 05:49:51
I guess this might work ...

//somenode[(_at_)value =
'start']/following-sibling::node()[following-sibling::somenode[(_at_)value
= 'stop']]

(not tested)

On 4/8/08, jakob Beetz <mailinglists(_dot_)jakob(_at_)gmail(_dot_)com> 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[(_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



-- 
Regards,
Mukul Gandhi

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