<xsl:sort>を複数記述した場合、記述順に第一キー、第二キー・・・となる。
このサンプルでは、地方名で昇順ソートし、同じ場合さらに県名で昇順ソートする。県名も同じ場合はさらに数値で降順ソートする。
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?> <?xml-stylesheet type="text/xsl" href="sort02.xsl"?> <start> <top>ソート処理_no2</top> <contents> <city><name>倉吉市</name><ken gp="中国" nu="001">鳥取県</ken></city> <city><name>高槻市</name><ken gp="近畿" nu="259">大阪府</ken></city> <city><name>姫路市</name><ken gp="近畿" nu="983">兵庫県</ken></city> <city><name>倉敷市</name><ken gp="中国" nu="333">岡山県</ken></city> <city><name>鳥取市</name><ken gp="中国" nu="390">鳥取県</ken></city> <city><name>神戸市</name><ken gp="近畿" nu="174">兵庫県</ken></city> <city><name>宗像市</name><ken gp="九州" nu="990">福岡県</ken></city> <city><name>摂津市</name><ken gp="近畿" nu="846">大阪府</ken></city> <city><name>下関市</name><ken gp="中国" nu="001">山口県</ken></city> <city><name>宝塚市</name><ken gp="近畿" nu="105">兵庫県</ken></city> <city><name>堺 市</name><ken gp="近畿" nu="548">大阪府</ken></city> <city><name>熊本市</name><ken gp="九州" nu="361">熊本県</ken></city> <city><name>津山市</name><ken gp="中国" nu="772">岡山県</ken></city> <city><name>米子市</name><ken gp="中国" nu="285">鳥取県</ken></city> <city><name>松原市</name><ken gp="近畿" nu="283">大阪府</ken></city> <city><name>福岡市</name><ken gp="九州" nu="652">福岡県</ken></city> <city><name>長門市</name><ken gp="中国" nu="662">山口県</ken></city> <city><name>西宮市</name><ken gp="近畿" nu="190">兵庫県</ken></city> <city><name>境港市</name><ken gp="中国" nu="669">鳥取県</ken></city> <city><name>小倉市</name><ken gp="九州" nu="147">福岡県</ken></city> </contents> <end>以上です(03/11/18)</end> </start>
XSLソース
<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<center><H3><xsl:value-of select="start/top"/></H3></center>
<xsl:for-each select="start/contents/city">
<xsl:sort select="ken/@gp"/>
<xsl:sort select="ken"/>
<xsl:sort select="ken/@nu" data-type="number"/>
<span style="color:navy"><xsl:value-of select="name" /></span>
<span style="color:red"><xsl:value-of select="ken" /></span>
<span style="color:blue"><xsl:value-of select="ken/@nu" /></span><BR />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
end(03/11/18)