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

RE: [xsl] position


Subject: RE: [xsl] position
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 1 Dec 2005 08:08:56 -0000

position() gives the position of a node in the current node list, which in
this case is the set of nodes selected by the apply-templates call, which is
a list of length one, because you only selected the last one.

xsl:number would probably suit your purpose better.

You're not trying to count the number of tags, of course, but the number of
elements. Most elements have two tags, a start tag and an end tag.

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

> -----Original Message-----
> From: Chandrasekhar A [mailto:chandrashekarrvt@xxxxxxxxx] 
> Sent: 01 December 2005 06:47
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] position
> 
> Hello,
> 
>      I am trying to find number of tags in my xml using XSLT. 
> The XSLT is
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format">
> <xsl:output method="text"/>
> 	<xsl:template match="/">		
> 			<xsl:apply-templates 
> select="dataroot/ReferenceTaskDb[last()]"/>
> 	</xsl:template>
> 	<xsl:template match="ReferenceTaskDb">
> 		<result> <xsl:value-of select="position()"/></result>
> 	</xsl:template>
> </xsl:stylesheet>
> 
>    It is returning 1. What is the wrong here ?
> 
> Thanks and Regards,
> Chandu


Current Thread
Keywords