xsl-list
[Top] [All Lists]

"position()" inside a sorted apply-templates (Akin to: sorted for-each: preceding::sibling is not in sort order)

2005-11-15 19:36:42
Working on a grouping problem I was trying to use preceding::sibling
on a selection of nodes that I had assembled with for-each and sorted.

I also have needed a preceding::sibling within the /sorted/ order, but I found 
a better algorithm 
solved that.

Here's my question, while writing a stylesheet recently I got a node's 
position():

<li class="count"> 
  <xsl:text>Photo </xsl:text> 
  <xsl:value-of select="position()" /> 
  <xsl:text> of </xsl:text> 
  <xsl:value-of select="$total-photos" /> 
</li>

within the context:

<xsl:apply-templates select="atom:feed/atom:entry"> 
  <xsl:sort select="position()" data-type="number" order="descending" /> 
</xsl:apply-templates>


(obviously an XSL transformation of Atom of a photo gallery)

So the last entry element (let's say 5) showed a position() of 1 ... which 
surprised me.  I expected to 
have to reverse the number with "$total-photos - position() + 1".

So the axes go in document order but functions do not?  I am using libxslt 1.0.

Can anybody point me to the clause in the standard where it covers axes context 
vs. function context?

Thx,
-- 
Rodman

--~------------------------------------------------------------------
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>
--~--