XML:XSLTのif文(条件分岐)
XML (18 items)
2004年09月09日
<記述例>
<xsl:if test="usercd = 'AAA'">
〜
</xsl:if>
※ノード”usercd”が、’AAA’であればTrue
他プログラム言語でも使用するif文型の条件処理を行う。
test属性は必須で、属性の値には”XPath”の式を指定する。
if文を評価した結果がtrueの場合はテンプレートを適用、
それ以外の場合は何も生成しない。
・XMLデータ(data.xml)
<?xml version="1.0" encoding="EUC-JP" ?>
<?xml-stylesheet type="text/xsl" href="data.xsl"?>
<test>
<site>
<sitename>RESTART SYSTEM CO.,LTD.</sitename>
<siteurl>http://www.res-system.com/</siteurl>
</site>
<site>
<sitename>WEB Artisan</sitename>
<siteurl>http://www.res-system.com/weblog/</siteurl>
</site>
<site>
<sitename>Yahoo! Japan</sitename>
<siteurl>http://www.yahoo.co.jp/</siteurl>
</site>
<site>
<sitename>RESTARTSYSTEM CO.,LTD.</sitename>
<siteurl>http://www.res-system.com/</siteurl>
</site>
</test>
・XMLデータを編集するXSLT(data.xsl)
<?xml version="1.0" encoding="Shift_JIS" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml" version="1.0">
<xsl:output
method="html"
version="1.0"
encoding="Shift_JIS"
omit-xml-declaration="yes"
standalone="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
indent="yes"
media-type="text/html"/>
<xsl:template match="/">
<!-- HTML出力部 -->
<html>
<head>
<title>Result</title>
</head>
<body>
<xsl:apply-templates />
<!-- HTML出力部 -->
</body>
</html>
</xsl:template>
<xsl:template match="test">
<xsl:apply-templates select="site"/>
</xsl:template>
<xsl:template match="site">
<!-- if文分岐 -->
<xsl:if test="./sitename = 'WEB Artisan'">
<!-- HTML出力部 -->
SITENAME:<xsl:value-of select="./sitename" /><br />
</xsl:if>
</xsl:template>
</xsl:stylesheet>
・生成したHTML
<html>
<head>
<title>Result</title>
</head>
<body>
SITENAME:WEB Artisan<br />
</body>
</html>
■使用例のダウンロード
ダウンロードし、data.xmlをブラウザで見る事で確認できます。
>>ダウンロード
※XSLTの動くブラウザでお試し下さい。IEであればIE6以上です。
