[xsl] Simple Question concerning [last()]

Subject: [xsl] Simple Question concerning [last()]
From: Stefan.Wachter@xxxxxx
Date: Sat, 8 Feb 2003 19:19:30 +0100 (MET)
Hi all.

My question is about a [last()] predicate in a simple step. Running the
following stylesheet on itself yields unexpected results using Saxon and Xalan.

I thought the XPath ".//x[last()] should return the last x-Element in
document order. However, it returns the first one. Changing the selection to
".//x[2] returns nothing at all! Yet, the XPath ".//x" returns all x-Elements and
the first x-Element has the position 1 and the second 2.

Is this a bug in the mentioned XSLT processors or have I missed something?

Thanks for your attention,

Stefan Wachter



<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:template match="/">
    <xsl:message>
      <xsl:for-each select=".//x[@u]">
        <xsl:value-of select="concat(@u, '(', position(), ') ')"/>
      </xsl:for-each>
    </xsl:message>
    <xsl:message><xsl:value-of select=".//x[last()]/@u"/></xsl:message>
    <a>
      <x u="1"/>
    </a>
    <a>
      <x u="2"/>
    </a>
  </xsl:template>

</xsl:stylesheet> 


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


Current Thread