Subject: RE: Using COUNT to create unique anchors
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 27 Nov 2006 22:01:57 -0000
|
I'm not sure what your input is (haven't been following the thread closely).
xsl:number says that in the absence of a count attribute, it only counts
nodes at each level that have the same name as the context node. I would
expect to fix your problem by changing the "count" attribute, but I can't
account for your current output.
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Austin, Darrel [mailto:Darrel.Austin@xxxxxxxxxxxxxxxxxx]
> Sent: 27 November 2006 21:18
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: Using COUNT to create unique anchors
>
> > the code I posted didn't require that, it generated a
> unique id using
> > xsl:number. The trick with cross referencing in xslt is to always
> > generate the id on the _referenced_ node
>
> D'oh! Yep, my mistake. I wasn't referencing the same nodes.
>
> So, I'm liking the xsl:number a bit better than the
> generate-ID, only because it seems to reflect the hierarchy a
> bit better.
>
> Follow-up question:
>
> This is my XSL:
>
> <xsl:for-each select="ruleItem">
>
> <xsl:variable name="id">
> <xsl:number level="multiple"/>
> </xsl:variable>
>
> <li><a href="#id{$id}"><xsl:value-of select="number" />:
> <xsl:value-of select="title" /></a>
> <xsl:if test="ruleItem">
> <ul>
> <xsl:call-template name="rulelistTOC" />
> </ul>
> </xsl:if>
> </li>
> </xsl:for-each>
>
> The output (numbering) of this looks like this:
>
> 1.1
> 1.2
> 1.2.1
> 1.2.2
> 1.3
>
> This is OK, but I'd prefer:
>
> 1
> 2
> 2.1
> 2.2
> 3
>
> I assume it does the former because every node is a child of
> the parent node of the document. As such, there maybe isn't
> away around that?
>
> -Darrel
|