XSLT - 並べ替え (xsl:sort)

Advertisement

書式

<xsl:sort select="key"
          order="ソート順"
          case-order="大文字小文字の指定"
          lang="言語"
          data-type="データの種類"/>
select : ソートのキーを指定
order : 昇順降順を指定(昇順:ascending 降順:descending)
case-order : 大文字小文字の優先度を指定(大文字:upper-first 小文字:lower-first)
lang : 言語を指定(例:ja)
data-type : データの種類を指定(text number など)

<xsl:sort select="price"
          order="ascending"
          lang="ja"
          data-type="number"/>
price をキーにして昇順ソートする。
※キーが複数の場合は xsl:sort を複数指定する。

サンプルコード

sample.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="./style.xsl"?>

<profile>

    <student>
    <name>BBB</name>
    <身長>150</身長>
    <体重>45</体重>
    </student>

    <student>
    <name>CCC</name>
    <身長>160</身長>
    <体重>80</体重>
    </student>

    <student>
    <name>AAA</name>
    <身長>170</身長>
    <体重>55</体重>
    </student>

</profile>
style.xsl
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
    <xsl:for-each select="profile/student">
        <xsl:sort select="身長"/>
        <xsl:value-of select="."/><br/>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>
生成されるコード
<html>
<head>
<title>XSLT</title>
</head>
<body>
<table>
<tr><td>BBB</td><td>150</td><td>45</td></tr>
<tr><td>CCC</td><td>160</td><td>80</td></tr>
<tr><td>AAA</td><td>170</td><td>55</td></tr>
</table>
</body>
</html>

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール