■text()
・child::text()の省略表記で、ロケーションステップ(Location Step)のノードテスト(node test)部分に使う。
・コンテキストノード内のすべての子テキストノードを選択する。
(特記)一般に、ノードテストとしてtext()を使用しなければならない理由はあまりない。XSLTでは、あるノードに適用されるテンプレートが存在しない場合、デフォルトテンプレートが適用される。即ち、そのノードのテキストがそのまま出力される。
だからあえてtext()を指定しなくてもテキスト出力はされる(サンプルの"姉"、"私"、"弟"を参照。同じ出力結果になる)。
あえてtext()を使う場合は、テキストを書式設定したり(サンプルの"妹1")、そのテキストを削除(サンプルの"妹2")、置き換え(サンプルの"妹3")するような時に利用する。
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="xpath19.xsl"?>
<root>
<title>わたしの家系</title>
<叔父>叔父さん
<従姉妹>叔父さんの娘</従姉妹>
</叔父>
<親 年齢="88">お父さんお母さん
<!--私の兄弟姉妹です-->
<姉 年齢="62">お姉さん
<おい>姉の息子</おい>
</姉>
<私 年齢="58">おいら
<長女>上の娘</長女>
</私>
<弟 年齢="54">おとうと
<めい>弟の娘</めい>
</弟>
<妹1 年齢="48">いもうと
<めい>妹の娘</めい>
</妹1>
<妹2 年齢="43">いもうと
<めい>妹の娘</めい>
</妹2>
<妹3 年齢="37">いもうと
<めい>妹の娘</めい>
</妹3>
</親>
<叔母>叔母さん
<従兄弟>叔母さんの息子</従兄弟>
</叔母>
<end>以上です(2004/5/12)</end>
</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><H3><xsl:value-of select="root/title"/></H3></center>
<xsl:apply-templates select="root/親/姉"/><br/>
<xsl:apply-templates select="root/親/私"/><br/>
<xsl:apply-templates select="root/親/弟"/><hr/>
<xsl:apply-templates select="root/親/妹1"/><br/>
<xsl:apply-templates select="root/親/妹2"/><br/>
<xsl:apply-templates select="root/親/妹3"/>
</xsl:template>
<xsl:template match="私">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="弟/text()">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="妹1/text()">
<font color="red"><xsl:value-of select="."/></font>
</xsl:template>
<xsl:template match="妹2/text()">
</xsl:template>
<xsl:template match="妹3/text()">
3番目のいもうと
</xsl:template>
</xsl:stylesheet>
end(00/11/16)