Subject: RE: [xsl] Using xsl:sort to sort child elements From: "Michael Kay" <mhk@xxxxxxxxx> Date: Tue, 4 Nov 2003 19:27:46 -0000 |
By the time you are processing an Address, it's too late to sort the addresses. When you write <xsl:template match="EntryData/Applicant/Address"> <xsl:copy> <xsl:apply-templates> <xsl:sort select="ZipCode"/> </xsl:apply-templates> </xsl:copy> </xsl:template> the apply-templates is selecting the children of the Address, and evaluating child::ZipCode for each one: but the nodes being sorted are Type, City, and ZipCode nodes, and none of these has a ZipCode child. You need to sort the addresses at the point where you are processing the Applicant. Michael Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > Jim McDowall > Sent: 04 November 2003 17:30 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Using xsl:sort to sort child elements > > > I have examined the numerous examples of the xsl:sort instruction but > haven't seen one that describes the technique to use for what > I need to > do. > > I need to sort child elements of the document that I am > transforming. Here is a very very simple example of what I'm > trying to accomplish. > Given this document: > > <EntryData> > <Applicant> > <FirstName>Ralph</FirstName> > <LastName>Smith</LastName> > <Address> > <Type>Business</Type> > <City>Chicago</City> > <ZipCode>60011</ZipCode> > </Address> > <Address> > <Type>Regional</Type> > <City>Springfield</City> > <ZipCode>62103</ZipCode> > </Address> > <Address> > <Type>Corporate</Type> > <City>New York</City> > <ZipCode>10011</ZipCode> > </Address> > </Applicant> > </EntryData> > > I would like to transform this document sorting the "Address" > elements > within the document by zip code. > > Here's an example of a style sheet that I've tried but the > result tree > remains in it's original state... > > <?xml version="1.0"?> > <!--XML Declaration --> > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > <xsl:output method="xml" indent="yes" standalone="yes" > omit-xml-declaration="no" encoding="UTF-8"/> > > <xsl:template match="EntryData/Applicant/Address"> > <xsl:copy> > <xsl:apply-templates> > <xsl:sort select="ZipCode"/> > </xsl:apply-templates> > </xsl:copy> > </xsl:template> > > <xsl:template match="*|@*|text()"> > <xsl:copy> > <xsl:apply-templates select="*|@*|text()"> > </xsl:apply-templates> > </xsl:copy> > </xsl:template> > > </xsl:stylesheet> > > Please advise. > > Thanks, > Jim McDowall > > > 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 -> |
---|---|---|
[xsl] Using xsl:sort to sort child , Jim McDowall | Thread | RE: [xsl] Using xsl:sort to sort ch, cknell |
RE: [xsl] Using xsl:sort to sort ch, Jim McDowall | Date | [xsl] XMP in Binary Files, Scott Purcell |
Month |