| Subject: RE: [xsl] <xsl:sort> question. From: Jeff Beadle <Jbeadle@xxxxxxxx> Date: Fri, 19 Apr 2002 13:25:14 -0400 | 
Hello,
They shouldn't sort the same.
In Version1 you're matching on the document root, then rolling through a
list of addressbook/address elements sorted by name/last-name child
elements.
In Version2 your matching on the addressbook/address element directly and
not rolling through them as list, your for-each will only execute one time
because within the given template you only have one addressbook/address
element ... you should get many, un-sorted, <p> elements.
What you may want to try is this:
  <xsl:template match="addressbook">
    <xsl:for-each select="address">
      <xsl:sort select="name/last-name"/>
      <p>
      <xsl:value-of select="name/last-name"/>
      </p>
    </xsl:for-each>
  </xsl:template>
or, if you're worried about only finding addressbook elements with address
children:
  <xsl:template match="addressbook[address]">
    <xsl:for-each select="address">
      <xsl:sort select="name/last-name"/>
      <p>
      <xsl:value-of select="name/last-name"/>
      </p>
    </xsl:for-each>
  </xsl:template>
HTH,
Jeff
-----Original Message-----
From: Dung, Ming-tzung [mailto:Ming-tzung_Dung@xxxxxxxxxxxxx]
Sent: Friday, April 19, 2002 12:54 PM
To: XSLT List (E-mail)
Subject: [xsl] <xsl:sort> question.
   The version 1 will work and the version 2 will not sort the data, even
though I think that these two are logically equivalent.
  Please let me know what you think?  Thanks in advance!!
------
**Version1 - output the sorted last name**
<xsl:template match="/">
     <xsl:for-each select="addressbook/address">
      <xsl:sort select="name/last-name"/>
      <p>
      <xsl:value-of select="name/last-name"/>      
      </p>      
    </xsl:for-each>
</xsl:template>
**Version 2 - output the sorted last name**
  <xsl:template match="/addressbook/address">
    <xsl:for-each select=".">
      <xsl:sort select="name/last-name"/>
      <p>
      <xsl:value-of select="name/last-name"/>      
      </p>      
    </xsl:for-each>
  </xsl:template>
**Input xml data
-----
<?xml version="1.0"?>
<addressbook>
  <address>
    <name>
      <title>Mr.</title>
      <first-name>Chester Hasbrouck</first-name>
      <last-name>Frisby</last-name>
    </name>
  </address>
  <address>
    <name>
      <first-name>Harry</first-name>
      <last-name>Backstayge</last-name>
    </name>
  </address>
  <address>
    <name>
      <first-name>Mary</first-name>
      <last-name>McGoon</last-name>
    </name>
  </address>
  <address>
    <name>
      <title>Ms.</title>
      <first-name>Amanda</first-name>
      <last-name>Reckonwith</last-name>
    </name>
  </address>
</addressbook>
-----
Ming
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] <xsl:sort> question., David Carlisle | Thread | [xsl] question with xalan, java, ut, Gail Buffington | 
| RE: [xsl] <xsl:sort> question., Michael Kay | Date | Re: [xsl] <xsl:sort> question., Thomas B. Passin | 
| Month |