|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Conditional Selection of Nodes
This sort of does it...It breaks down if child element names are repeated
out of sequence.
<xsl:template match="/">
<foo>
<xsl:variable name="nodeList" select="foo/child::*" />
<xsl:for-each select="$nodeList">
<xsl:variable name="curPos" select="position()" />
<xsl:variable name="curName" select="name()" />
<xsl:variable name="nextName" select="name(following-sibling::*)" />
<xsl:if test="$curName!=$nextName">
<xsl:if test="$curName!='p'">
<p>
<xsl:for-each select="$nodeList[name()=$curName and
$curPos>=position()]">
<xsl:copy>
<xsl:value-of select="text()"/>
</xsl:copy>
</xsl:for-each>
</p>
</xsl:if>
<xsl:if test="$curName='p'">
<xsl:copy>
<xsl:value-of select="text()"/>
</xsl:copy>
</xsl:if>
</xsl:if>
</xsl:for-each>
</foo>
</xsl:template>
----- Original Message -----
From: Ciaran Byrne <ciaran.byrne@xxxxxxx>
To: Xsl-List <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, May 09, 2001 4:41 PM
Subject: Conditional Selection of Nodes
> Hi all,
> The following question has been teasing me lately
> and I was hoping someone has an answer.
>
> I have the following XML ...
>
> <foo>
> <b>content</b>
> <b>more content</b>
> <p>yet more content</p>
> <i>some more conent</i>
> </foo>
>
>
> and what I want is to put all child elements of 'foo' that
> are not in 'p' elements into a 'p' element, in order.
>
> <foo>
> <p>
> <b>content</b>
> <b>more content</b>
> </p>
> <p>yet more content</p>
> <p>some more content</p>
> </foo>
>
> The key issue is to avoid putting 'p' elements around every sibling i.e.
>
> <foo>
> <p>
> <b>content</b>
> </p>
> <p>
> <b>more content</b>
> </p>
> etc.
> </foo>
>
> I've tried a few approaches yet no joy ;o( Any help is appreciated
>
> Ciaran.
>
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








