[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Using the Input Document to Control Generation of Numbers in the Output
Subject: Re: [xsl] Using the Input Document to Control Generation of Numbers in the Output
From: George Cristian Bina <george@xxxxxxxxxxxxx>
Date: Tue, 02 Oct 2007 16:38:33 +0300
|
The 3rd case is a little more complicated but still doable in a non
recursive way:
<one:one xmlns:one="http://www.example.com/one" index="1"/>
<xsl:variable name="one" select="document('')/*/one:one"
xmlns:one="http://www.example.com/one"/>
<xsl:template match="incoming">
<xsl:choose>
<xsl:when test="@index">
<ougoing name="{@name}" index="{@index}"/>
</xsl:when>
<xsl:otherwise>
<outgoing name="{@name}" index="{count(preceding-sibling::*) +
(preceding-sibling::*[@index][1]/@index|$one/@index)[1] -
count(preceding-sibling::*[@index][1]/preceding-sibling::*)
}"/>
</xsl:otherwise>
</xsl:choose>
Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina - http://aboutxml.blogspot.com/
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
George Cristian Bina wrote:
Michael Kay wrote:
[...]
This is a typical use case for recursion (even in XSLT 2.0).
What about
<xsl:template match="incoming">
<outgoing name="{@name}"
index="{count(preceding-sibling::*[not(@size)]) + 1 +
sum(preceding-sibling::*/@size)}"></outgoing>
</xsl:template>
?
Regards,
George
---------------------------------------------------------------------
George Cristian Bina - http://aboutxml.blogspot.com/
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
|