Subject: [xsl] Finding the position of an element wrt to other element From: Rashi Bhardwaj <rashi.bhardwaj@xxxxxxxxx> Date: Fri, 19 Nov 2010 15:46:27 +0530 |
Hi, I want the position of an element (there is a condition for selecting that element) relative to other element Input XML: <test> <a> <b name ='1'></b> <b name ='2'></b> <b name ='3'> <c></c> </b> <b name ='4'> <c></c> <c></c> </b> <b name ='4'> <c></c> <c></c> </b> </a> <a> <b name ='1'></b> <b name ='2'> <c></c> </b> <b name ='3'></b> <b name ='4'> <c></c> </b> </a> </test> XSL I using: <xsl:template match="/"> <html> <body> <table> <tbody> <tr> <th> <xsl:value-of select="$CustomSelect"/> </th> </tr> </tbody> </table> </body> </html> </xsl:template> <xsl:variable name="CustomSelect"> <xsl:text>position: </xsl:text> <xsl:call-template name="test"> </xsl:call-template> </xsl:variable> <xsl:template name="test"> <xsl:call-template name="test2"> <xsl:with-param name="node" select="//b[c][not(@name =preceding::b[child::c]/@name)]/@name"/> </xsl:call-template> </xsl:template> <xsl:template name="test2"> <xsl:param name="node"/> <xsl:for-each select="$node"> <xsl:value-of select="position()"/> <xsl:if test="position()!=last()"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Output I m getting is position 123, but i want it should count all b from top to end at any level and give relative position like here it should give 342. I m getting how to go ahead...please help me out thanks...... Rashi Bhardwaj
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] optimization of complex X, Graydon | Thread | Re: [xsl] Finding the position of a, Wolfgang Laun |
Re: [xsl] optimization of complex X, Michael Kay | Date | Re: [xsl] optimization of complex X, Graydon |
Month |