[Home] [By Thread] [By Date] [Recent Entries]
At 2007-03-10 17:13 +0530, Mukul Gandhi wrote:
I wonder, why this XSLT 1.0 solution doesn't work: From what I can tell it is because you only look at the "next" a and not all contiguous a elements that follow: <xsl:apply-templates select="following-sibling::*[1][self::a]" /> Did you mean to do what is in the code below? This appears to work just fine. I hope this helps. . . . . . . . . . Ken <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes"/> <!--identity transform for all nodes other than 'a'-->
<xsl:template match="node() | @*">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template><!--the first a-->
<xsl:template match="a[not(preceding-sibling::*[1][self::a])]">
<a-block>
<xsl:apply-templates select="." mode="nested"/>
</a-block>
</xsl:template><!--other a's when nested-->
<xsl:template match="a" mode="nested">
<xsl:copy-of select="."/>
<xsl:apply-templates select="following-sibling::*[1][self::a]"
mode="nested"/>
</xsl:template><!--other a's when not nested can be ignored--> <xsl:template match="a"/> </xsl:stylesheet>
|

Cart



