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