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