使用言語を判別するlang()関数

XMLの予約属性に xml:lang=""がある。これは要素内の使用言語を明示するもの。その要素がどの言語で記述されているかを指定する。例えば<Test xml:lang="ja">ならTest要素は日本語で記述されていることを示す。英語なら"en"を。

xPath関数のlang()関数は、引数の言語名がコンテキストノードのxml:lang=""で指定した言語名と一致した場合 true を返し、一致しなければfalseを返す。

[サンプルXML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="lang01.xsl"?>
<root>
<title>使用言語を判別するlang()関数</title>
<data xml:lang="ja">おはよう</data>
<data xml:lang="en">Good morning</data>
<data >オハヨウ</data>
<data xml:lang="JA">こんばんは</data>
<data xml:lang="EN">Good evening</data>
<data>コンバンハ</data>
</root>

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><H4><xsl:value-of select="root/title"/></H4></center>
<xsl:apply-templates select="root/data"/>
</xsl:template>

<xsl:template match="data">
<xsl:choose>
<xsl:when test="lang('ja')">
<p style="color:green;font-family:'MS 明朝'"><xsl:value-of select="."/></p>
</xsl:when>
<xsl:when test="lang('en')">
<p style="color:red;font-family:'Comic Sans MS'"><xsl:value-of select="."/></p>
</xsl:when>
<xsl:otherwise>
<p style="font-family:'MS ゴシック'"><xsl:value-of select="."/></p>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

end(04/6/15)