xsl-list
[Top] [All Lists]

more xsl:number confusion!

2005-09-27 13:50:13
I have the following input document:

<?xml version="1.0"?>
<a>
  <b/>
</a>

...and I am trying to determine why this stylesheet is not behaving as I would expect:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
  <xsl:output omit-xml-declaration="yes"/>
  <xsl:template match="a/b">
xsl:number result: (<xsl:number level="multiple" count="a" from="a"/>)
    <xsl:variable name="S" select="."/>
<xsl:variable name="A" select="$S/ancestor-or-self::node()[local- name() = 'a']"/> <xsl:variable name="F" select="$S/ancestor-or-self::node()[local- name() = 'a'][1]"/>
    <xsl:variable name="AF" select="$A[count(.|$F) = count($F)]"/>
    sequence number should contain: (<xsl:for-each select="$AF">
<xsl:value-of select="1 + count($AF/preceding-sibling::node() [local-name() = 'a'])"/>
      <xsl:text> </xsl:text>
    </xsl:for-each>)
  </xsl:template>
</xsl:stylesheet>


I emit the result of an xsl:number when both the from and count patterns are the parent of the context node. The result is empty. However, if I follow the explicit instructions on how to determine a sequence number, it seems like this should contain a single
integer of value 1.

The output I get from Xalan and Saxon both is:

    xsl:number result: ()

    sequence number should contain: (1 )

Can anyone help explain why the xsl:number value is not the same as the hand-computed value?

NOTE: I used a very simple local-name() test in place of a node-type and node-name test. I realize this is not the same as matching the pattern "a", but it should suffice for this example.



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>