xsl-list
[Top] [All Lists]

Re: [xsl] Count the node from zero instead of one.

2010-11-26 03:18:42
In XSLT 2.0 you may try to do something like below,

<xs:function name="func:myNumber" as="xs:positiveInteger">
      <xsl:param name="nodePattern" as="node()*" />

      <xsl:variable name="num" as="xs:positiveInteger">
           <xsl:number count="$nodePattern"/>
      </xsl:variable>
      <xsl:sequence select="$num - 1" />
</xs:function>

and replace following in your code:

<xsl:element name="position">
     <xsl:number count="*"/>
     <xsl:text>,</xsl:text>
</xsl:element>

with

<position>
     <xsl:value-of select="func:myNumber(*)" />
     <xsl:text>,</xsl:text>
</position>

you would have to bind the function namespace prefix "func:" to an
appropriate URI.

This is not tested.

On Fri, Nov 26, 2010 at 12:38 PM, Rashi Bhardwaj
<rashi(_dot_)bhardwaj(_at_)gmail(_dot_)com> wrote:
HI All,

I m counting the node position from this logic in the below sample xml

xml:

<test>
<a>
<b name ='1'></b>
<b name ='2'></b>
<b name ='3'>
<c>aaa</c>
</b>
<b name ='4'>
       <c>bbb</c>
       <c>ccc</c>
</b>
<b name ='4'>
       <c>dddd</c>
       <c>eeee</c>
</b>
</a>
<a>
<b name ='1'></b>
<b name ='2'>
<c>fffff</c>
</b>
<b name ='3'></b>
<b name ='4'>
       <c>gggg</c>
</b>
</a>
</test>

<xsl:template name="CountNode">
               <xsl:param name="node"
select="//b[c[preceding-sibling::c]][not(@name
=preceding::b[child::c]/@name)]/@name"/>
               <xsl:for-each select="$node">
                       <xsl:element name="position">
                               <xsl:number count="*"/>
                               <xsl:text>,</xsl:text>
                       </xsl:element>
                       <xsl:if test="position()!=last()"/>
               </xsl:for-each>
       </xsl:template>

it gives the result 3,4,2,....I want it should count from zero instead
of one and the result shld be 2,3,1.or it can print the result by
subracing 1 from it like 3-1=2.

Please suggest some thing...

Thanks....
Rashi




-- 
Regards,
Mukul Gandhi

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

<Prev in Thread] Current Thread [Next in Thread>