そのため、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で、表示してみましょう。