xsl-list
[Top] [All Lists]

RE: Aberrant Alphabetizing.

2003-03-07 05:05:21

I have run into something (embarrassingly) unexpected, using 
sort to alphabetize

Hi Wendy,

Unfortunately you have also fallen into the for-each trap... using 
<xsl:for-each select="."> as the first child of a matching template will always 
select just one node - the element that it is being matched against.

What I think you should be doing is sorting the <book> child nodes of whatever 
parent they have by title, something like:
 
<xsl:template match="insert-parent-of-book-here">
  <xsl:apply-templates select="book">
    <xsl:sort select="title"/>
  </xsl:apply-templates>
</xsl:template>

Think of it as building a list of nodes to process using <xsl:apply-templates 
select="..."/>, and then sorting them using <xsl:sort/>

cheers
andrew

-----Original Message-----
From: Wendy McFarland [mailto:wmcfarla(_at_)nas(_dot_)edu]
Sent: 07 March 2003 11:40
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Aberrant Alphabetizing.


I have run into something (embarrassingly) unexpected, using 
sort to alphabetize
book titles to be printed in a catalog. The sort is working 
pefectly for most of
the books. But here are 5 examples of incorrect sorting (that 
were, sigh,
pointed out to me by the client):

Computers at Risk: Safe Computing in the Information Age
     (should be 2nd)

Computer Science and Artificial Intelligence
     (should be 1st)

Effectiveness of the United States Advanced Battery Consortium as a
Government-Industry Partnership
     (should be 5th)

Effective Services for Young Children: Report of a Workshop
     (should be 4th)

Effect of Environment on Nutrient Requirements of Domestic Animals
     (should be 3rd)


---- The XSLT -----------------
<xsl:template match="book">
     <xsl:for-each select=".">
          <xsl:sort select="title"/>
          <xsl:apply-templates select="title"/>
     </xsl:for-each>
</xsl:template>
-------------------------------

---- The XML ------------------
<book>
     <title>Computers at Risk: Safe Computing in the 
Information Age</title>
</book>
<book>
     <title>Computer Science and Artificial Intelligence</title>
</book>
<book>
     <title>Effectiveness of the United States Advanced 
Battery Consortium as a
Government-Industry Partnership</title>
</book>
<book>
     <title>Effective Services for Young Children: Report of 
a Workshop</title>
</book>
<book>
     <title>Effect of Environment on Nutrient Requirements of Domestic
Animals</title>
</book>
-------------------------------


Can anyone help me understand why the alphabetizing doesn't 
come out as
expected?



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





---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.458 / Virus Database: 257 - Release Date: 24/02/2003
 


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.458 / Virus Database: 257 - Release Date: 24/02/2003
 

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



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