Subject: Re: [xsl] Position() in apply-templates From: Geert Bormans <geert@xxxxxxxxxxxxxxxxxxx> Date: Wed, 02 Apr 2014 01:19:57 +0200 |
To quote the example from Jeni Tennison's post <xsl:template match="/"> <xsl:apply-templates select="r/a"> <xsl:sort data-type="number" select="@at"/> <xsl:with-param name="p" select="position()"/> </xsl:apply-templates> </xsl:template>
apply-templates will not change the context, for-each on the other hand will create a new context
Can someone clarify the meaning of "position()" in apply-templates.
According to Michael's Kay's 4th edition,
"When <xsl:apply-templates> or <xsl:for-each> is called to process a sequence of nodes, the nodes ar enumbers 1 to N in their sorted order, and while each node is being processed. the context position is the number assigned to that node."
But I found a 2001 post indicating that, within an <xsl:apply-templates> instruction *itself* the context position is just the context position of the current node (_not_ the nodes being selected by the select attribute of <xsl:apply-templates>). That post is here=http://www.stylusstudio.com/xsllist/200105/post90830.html
My question is "When the "number assigned to that node" (as referenced in Kay) is considered the context position? :
A. In the predicate of the select attribute of the <xsl:apply-templates> instruction? B. In the select attribute of any <xsl:with-param> instructions inside the <xsl:apply-templates> instruction? C. In the body of the <xsl:template> called by the <xsl:apply-templates> instruction?
-David
--
"A false conclusion, once arrived at and widely accepted is not dislodged easily, and the less it is understood, the more tenaciously it is held." - Cantor's Law of Preservation of Ignorance.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Position() in apply-t, Wendell Piez | Thread | Re: [xsl] Position() in apply-templ, David Rudel |
[xsl] Re: Position() in apply-templ, David Rudel | Date | Re: [xsl] Position() in apply-templ, David Rudel |
Month |