This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Numbering scheme
- From: Jarno dot Elovirta at nokia dot com
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 30 Sep 2002 09:02:44 +0300
- Subject: RE: [xsl] Numbering scheme
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
> I am a novice in XSLT. so I would like to have assistance with the
> following numbering scheme.
>
> I have a dtd file with the rule:
> <!ELEMENT Page (Name, Page*)> -- Recursive
> <!ATTLIST Page ID CDATA #REQUIRED>
>
> And the XML is generated in a recursive way where a parent
> page can have
> sub-page(s).
> <Page ID="1">
> <Name>1</Name>
> <Page ID="1">
> <Name>1.1</Name>
> </Page>
> <Page ID="2">
> <Name>1.2</Name>
> <Page ID="1">
> <Name>1.2.1</Name>
> </Page>
> <Page ID="2">
> <Name>X</Name>
> <Page ID="1">
> <Name>1.2.2</Name>
> </Page>
> </Page>
> </Page>
> <Page ID="3">
> <Name>1.3</Name>
> </Page>
> <Page>
>
> <Page ID="2">
> <Name>2</Name>
> <Page ID="1">
> <Name>2.1</Name>
> <Page ID="1">
> <Name>2.1.1</Name>
> <Page ID="1">
> <Name>2.1.1.1</Name>
> </Page>
> </Page>
> </Page>
> </Page>
>
> <Page ID="3">
> <Name>3</Name>
> </Page>
>
> I would like to have a numbering scheme as given within the
> <Name> tags.
> Can anyone help me asap?
An identity transformation that will add the numbering to Name elements.
<xsl:template match="Name">
<xsl:copy>
<xsl:number level="multiple" count="Page" format="1.1"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
Cheers,
Jarno
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list