[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] problem with numbering
Subject: Re: [xsl] problem with numbering From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Mon, 16 Sep 2002 16:32:04 +0100 |
Hi Lars, > 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> That's a tough one. The multi-level numbering in XSLT is designed to work with structures in which the ancestors of an element give it its numbering; here, when an NELEMENT is nested inside a NUMMERIERUNG, you're using the element before an element's parent to give it its numbering. I think that it's probably easiest to create a recursive template for numbering NELEMENT elements. If an NELEMENT element's parent as a NELEMENT preceding sibling, then apply templates to that to get the first part of the number; the end of the number can be supplied through a basic xsl:number: <xsl:template match="NELEMENT" mode="number"> <xsl:apply-templates mode="number" select="../preceding-sibling::*[1][self::NELEMENT]" /> <xsl:number format="1." /> </xsl:template> Apply templates in 'number' mode to get an NELEMENT element's number. To get the output you want, for example, use: <xsl:template match="NELEMENT"> <xsl:apply-templates select="." mode="number" /> <xsl:value-of select="." /> </xsl:template> Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] problem with numbering, Lars Geldner | Thread | Re: [xsl] problem with numbering, G. Ken Holman |
Re: [xsl] problem with numbering, G. Ken Holman | Date | Re: [xsl] grouping probs, Jeni Tennison |
Month |
Keywords