preceding-sibling on sorted nodes

Subject: preceding-sibling on sorted nodes
From: Mark Hayes <mark@xxxxxxxxxxx>
Date: Wed, 3 Nov 1999 14:59:30 -0800
When sorting using XT the preceding-sibling axis seems to operate on the
nodes in source tree order not in sorted order.  Is this correct behavior?
I couldn't tell from the spec.

I'm not sure how to workaround this, since I'm trying to do grouping after
sorting and using preceding-sibling is the only way I know of to do
grouping.  If there are prior threads on this issue please say so, I could
find anything in the last few weeks.

thanks!
mark

---------------------
test source:
---------------------
<test>
  <item name='a'/>
  <item name='b'/>
  <item name='c'/>
  <item name='a'/>
  <item name='b'/>
  <item name='c'/>
</test>

---------------------
test output:
---------------------
<?xml version="1.0" encoding="utf-8"?>
<test>
<item name="a" preceding-sibling=""/>
<item name="a" preceding-sibling="c"/>
<item name="b" preceding-sibling="a"/>
<item name="b" preceding-sibling="a"/>
<item name="c" preceding-sibling="b"/>
<item name="c" preceding-sibling="b"/>
</test>

---------------------
test stylesheet:
---------------------
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'>

<xsl:output indent='yes'/>

<xsl:template match='/'>
  <test>
    <xsl:apply-templates/>
  </test>
</xsl:template>

<xsl:template match='test'>
  <xsl:apply-templates>
    <xsl:sort select='@name'/>
  </xsl:apply-templates>
</xsl:template>

<xsl:template match='item'>
  <item name='{@name}'
preceding-sibling='{preceding-sibling::item[1]/@name}'/>
</xsl:template>

</xsl:stylesheet>


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


Current Thread