DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8551>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8551

incorrect order of returned nodeset from xpath expression

[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|[EMAIL PROTECTED]    |santiago.pericasgeertsen@sun
                   |                            |.com



------- Additional Comments From [EMAIL PROTECTED]  2002-05-15 17:23 -------
I verified that this problem still exists with the current build as of 5-15-02.

bug5881.xml
-----------
<rowset>
<row><indent>1</indent><item>A</item></row>
<row><indent>2</indent><item>B</item></row>
<row><indent>2</indent><item>C</item></row>
<row><indent>1</indent><item>D</item></row>
<row><indent>2</indent><item>E</item></row>
<row><indent>3</indent><item>F</item></row>

bug8551.xsl
-----------

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:template match="/rowset">
<rowset>
  <xsl:for-each select="row">
    <xsl:variable name="currindent" select="indent"/>
    <row>
      <indent>
        <xsl:value-of select="indent"/>
      </indent>
      <item>
        <xsl:value-of select="item"/>
      </item>
      <xsl:variable name="pname"
select="(preceding-sibling::*[indent=number($currindent)-1])[last()]"/>
      <subset>
        <xsl:for-each
select="preceding-sibling::*[indent=number($currindent)-1]">
          <item>
            <xsl:value-of select="item"/>
          </item>
        </xsl:for-each>
      </subset>
      <parent_name>
        <xsl:value-of select="$pname/item"/>
      </parent_name>
      <xsl:choose>
        <xsl:when test="count($pname)=0">
          <parent_index>0</parent_index>
        </xsl:when>
        <xsl:otherwise>
          <parent_index><xsl:value-of
select="count($pname/preceding-sibling::row)+1"/></parent_index>
        </xsl:otherwise>
      </xsl:choose>
    </row>
  </xsl:for-each>
</rowset>
</xsl:template>
</xsl:stylesheet>

Output from Xalan and Saxon
---------------------------
<?xml version="1.0" encoding="UTF-8"?>
<rowset><row><indent>1</indent><item>A</item><subset/><parent_name/><parent_index>0</parent_index></row><row><indent>2</indent><item>B</item><subset><item>A</item></subset><parent_name>A</parent_name><parent_index>1</parent_index></row><row><indent>2</indent><item>C</item><subset><item>A</item></subset><parent_name>A</parent_name><parent_index>1</parent_index></row><row><indent>1</indent><item>D</item><subset/><parent_name/><parent_index>0</parent_index></row><row><indent>2</indent><item>E</item><subset><item>A</item><item>D</item></subset><parent_name>D</parent_name><parent_index>4</parent_index></row><row><indent>3</indent><item>F</item><subset><item>B</item><item>C</item><item>E</item></subset><parent_name>E</parent_name><parent_index>5</parent_index></row></rowset>


Output from XSLTC
-----------------
<?xml version="1.0" encoding="UTF-8"?>
<rowset><row><indent>1</indent><item>A</item><subset/><parent_name/><parent_index>0</parent_index></row><row><indent>2</indent><item>B</item><subset><item>A</item></subset><parent_name>A</parent_name><parent_index>1</parent_index></row><row><indent>2</indent><item>C</item><subset><item>A</item></subset><parent_name>A</parent_name><parent_index>1</parent_index></row><row><indent>1</indent><item>D</item><subset/><parent_name/><parent_index>0</parent_index></row><row><indent>2</indent><item>E</item><subset><item>D</item><item>A</item></subset><parent_name>A</parent_name><parent_index>1</parent_index></row><row><indent>3</indent><item>F</item><subset><item>E</item><item>C</item><item>B</item></subset><parent_name>B</parent_name><parent_index>1</parent_index></row></rowset>

Reply via email to