Re: [xsl] Create ID attribute to match xsl:number

Subject: Re: [xsl] Create ID attribute to match xsl:number
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 12 Jun 2003 13:01:34 +0100
>	<xsl:number level="multiple" count="step" format="1.1"/>

> I also need to create an ID attribute node for each step.
> The ID needs to match the number applied above,

If you mean that you want an attribute with name ID with that value
then just

<div>
<xsl:attribute name="ID">
	<xsl:number level="multiple" count="step" format="1.1"/>
</xsl:attribute>
	<xsl:number level="multiple" count="step" format="1.1"/>
</div>

would make
<div ID="1.2">1.2</div>

If you are feeling kind to your processor and want to save it working
out the number twice, you could instead do

<xsl:variable name="ID">
	<xsl:number level="multiple" count="step" format="1.1"/>
</xsl:variable>
<div ID="{$ID}">
 <xsl:value-of select="$ID"/>
</div>


However note that if your ID attribute is of type ID (as HTML's is for
example) then the resulting file will be in error (not that XSLT will care)
as ID values follow the same rules as element names, and may not begin
with a number. So you ought to prefix your id by a letter, eg id.

<div id="id.{$ID}">
 <xsl:value-of select="$ID"/>
</div>

making

<div id="id.1.2">1.2</div>

which would be valid html or xhtml.

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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


Current Thread