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