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

Re: [xsl] problem with numbering


Subject: Re: [xsl] problem with numbering
From: michael.h.kay@xxxxxxxxxxxx
Date: Tue, 17 Sep 2002 7:55:19 +0000

You can't do this using level="multi" because element 2.1 is not a descendant of element 2. So you're going to have to build up the number yourself; which means you might as well use count() rather than <xsl:number/> - count() is a lot more flexible.

In XSLT 2.0 you can use <xsl:number> to format any sequence of numbers, so I think you can write:

<xsl:number
  select="(for $n in (ancestor::NUMMERIERUNG)[position()!=1]
           return count($n/preceding-sibling::NELEMENT)+1,
           count(preceding-sibling::NELEMENT)+1)"
  format="1.1"/>

Michael Kay
> 
> From: "Lars Geldner" <geldner@xxxxxx>
> Date: Mon, 16 Sep 2002 16:15:24 +0200
> To: <xsl-list-digest@xxxxxxxxxxxxxxxxxxxxxx>
> Subject: [xsl] problem with numbering
> 
> Hello,
> 
> I have a problem with the xsl:number-element. In the following part of a
> XML-document I am not able to produce the numbering which I have declared in
> the comments.
> 
> <NUMMERIERUNG>
>    <!--1.--><NELEMENT>text1</NELEMENT>
>    <!--2.--><NELEMENT>text2</NELEMENT>
>    <NUMMERIERUNG>
>     <!--2.1--><NELEMENT>text21</NELEMENT>
>     <!--2.2--><NELEMENT>text22</NELEMENT>
>    </NUMMERIERUNG>
>    <!--3.--><NELEMENT>text3</NELEMENT>
> </NUMMERIERUNG>
> 
> The output should be:
> 
> 1.text1
> 2.text2
> 2.1.text21
> 2.2.text22
> 3.text3
> 
> Thanks in advance,
> 
> Lars Geldner
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords