ash | サーバ構築 | Linux | ホームページ作成 | プログラム | その他

XSLでの条件分岐

所持金リストを作成してみよう!

 所持金リストは、各個人の持っているお金のリストを表示するものです。 ただし、借金があり、所持金がマイナスの場合は、金額を赤字で表示します。
 そのため、XSLでの条件分岐機能を利用して、金額の数字の色をXMLデータによって切り替えてみましょう。

money.xml
<?xml version="1.0" encoding="ISO-2022-JP" ?>
<?xml:stylesheet type="text/xsl" href="money.xsl" ?>

<所持金リスト>
  <所持金>
    <名前>升村 丞</名前>
    <金額>375,000</金額>
  </所持金>
  <所持金>
    <名前>北陸 太郎</名前>
    <金額>153,000</金額>
  </所持金>
  <所持金>
    <名前>金沢 花子</名前>
    <金額>-12,000</金額>
  </所持金>
</所持金リスト>

 簡単な条件は、xsl:ifで実現できますが、複数の分岐には、xsl:choose, xsl:when, xsl:otherwiseを使います。 これは、C言語のcase, of, defaultと同じように使います。

money.xsl
<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<html lang="ja">
<head>
  <title>所持金リスト</title>
</head>

<body>
  <h1>所持金リスト</h1>
  <table border="1">
    <tr>
      <th>名前</th><th>金額</th>
    </tr>
    <xsl:apply-templates select="所持金リスト/所持金"/>
  </table>
</body>
</html>

</xsl:template>

<xsl:template match="所持金">
  <tr>
    <td><xsl:value-of select="名前"/></td>
    <xsl:choose>
      <xsl:when test="金額[. $lt$ 0]">
         <td style="color:red"><xsl:value-of select="金額"/></td>
      </xsl:when>
      <xsl:otherwise>
         <td><xsl:value-of select="金額"/></td>
      </xsl:otherwise>
    </xsl:choose>
  </tr>
</xsl:template>

</xsl:stylesheet>

 では、IE5.0で、表示してみましょう。



Copyright (C)1998-1999 ASH multimedia lab.
mail : wmaster@ash.or.jp