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>
--
World-wide corporate, govt. & user group XML, XSL and UBL training
RSS feeds: publicly-available developer resources and training
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
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>
--~--