Michael,
Your problem is simply that xsl:number works differently from what you
expect: in particular, the 'value' attribute doesn't work this way.
It may seem to be a bit of a kluge, but unfortunately to get the correct
number you want using xsl:number, you have to change the context node to
the node that you want to count. This can be readily done with a new template:
<xsl:template match="//see">
'see' finds destination '<xsl:value-of select="id(@ref)"/>',
whose position is: <xsl:apply-templates select="id(@ref)" mode="number"/>.
</xsl:template>
<xsl:template match="*" mode="number">
<xsl:number/>
</xsl:template>
If you're too lazy to make a new template, you could put the whole thing in
a for-each.
Another alternative would be to skip the xsl:number altogether and use a
simple count, as in:
<xsl:template match="//see">
'see' finds destination '<xsl:value-of select="id(@ref)"/>',
whose position is: <xsl:value-of
select="count(id(@ref)/preceding-sibling::*)+1"/>.
</xsl:template>
Of course this will only work if you want the simplest of numbering schemes.
Cheers,
Wendell
At 04:52 PM 10/28/2002, you wrote:
For generating links to numbered images in hypertext
I'm using ID referencing. Accessing the children of a
referenced node works fine with XT, but an xsl:number
element using the reference returns always zero. Is
something wrong with my code?
Here's an example:
-------SOURCE-------
<!DOCTYPE myroot [
<!ELEMENT see (#PCDATA)>
<!ELEMENT dest (#PCDATA)>
<!ATTLIST see ref CDATA #REQUIRED>
<!ATTLIST dest id ID #REQUIRED> ]>
<myroot>
<see ref="D2"/>
<dest id="D1">Node D1</dest>
<dest id="D2">Node D2</dest>
<dest id="D3">Node D3</dest>
</myroot>
------STYLESHEET------
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version
="1.0">
<xsl:template match="//see">
'see' finds destination '<xsl:value-of select="id(@ref)"/>',
whose position is: <xsl:number value="id(@ref)"/>.
</xsl:template>
<xsl:template match="text()"/>
</xsl:stylesheet>
--------RESULT--------
'see' finds destination 'Node D2',
whose position is: 0.
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list