This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: problem with numbering
- From: michael dot h dot kay at ntlworld dot com
- To: xsl-list at lists dot mulberrytech dot com
- Cc: <xsl-list-digest at lists dot mulberrytech dot com>
- Date: Tue, 17 Sep 2002 7:55:19 +0000
- Subject: Re: [xsl] problem with numbering
- Reply-to: xsl-list at lists dot mulberrytech dot com
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@web.de>
> Date: Mon, 16 Sep 2002 16:15:24 +0200
> To: <xsl-list-digest@lists.mulberrytech.com>
> 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