[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] in XPath


Subject: RE: [xsl] <xsl:number> in XPath
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 9 Dec 2004 15:35:07 -0000

> <xsl:number level="any" count="*" from="parent"/>

The XSLT 2.0 specification defines xsl:number in terms of equivanent XPath
expressions. However, because "count" and "from" are XSLT patterns, it's a
bit complicated to do this in the general case. For this particular case,
however, if the context node is an element named C, then this xsl:number
call returns a text node containing the value of:

count(
         (preceding::node()|ancestor-or-self::node())[self::C]
      [not(. <<
         $S/(preceding::node()|ancestor::node())[self::parent][last()])] )

unless that is zero, in which case xsl:number returns a zero-length text
node.

If you leave out the from="parent", and if a C element cannot have any C
ancestors, then the expression reduces to count(preceding::C)+1.

Michael Kay
http://www.saxonica.com/


Current Thread
Keywords