|
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 |