<xsl:value-of> 要素
選択されたノードをテキスト値として挿入します。
<xsl:value-of
select = Expression
disable-output-escaping = "yes" | "no"
</xsl:value-of>
属性
select
必ず指定します。 現在のコンテキストの照合に使われる 式 (XSLT)。 結果は、string() 関数などを呼び出すことによって文字列に変換されます。 ノード セットは、セット内の最初のノードの文字列値を挿入することによって文字列に変換されます。disable-output-escaping
既定値は "no" です。 値が "yes" である場合、<xsl:value-of> 要素をインスタンス化することによって生成されたテキスト ノードは、エスケープなしで出力されます。 たとえば、次の例では "<" という 1 文字が生成されます。<xsl:value-of disable-output-escaping="yes" select="string('<')"/>
注意
disable-output-escaping="yes" を使用すると、整形式でないドキュメントを生成できるため、注意する必要があります。出力が整形式でない場合、状況によってはエラーとなる場合があります。たとえば、XML ドキュメントに対する transformNodeToObject は、結果が整形式である必要があるため、disable-output-escaping がドキュメントの整形式に影響を及ぼしていると、完了しないことがあります。disable-output-escaping="yes" は、潜在的な危険を理解したうえで利用する高度な機能であると考えてください。
要素情報
出現回数 |
無制限 |
親要素 |
xsl:attribute、xsl:comment、xsl:copy、xsl:element、xsl:fallback、xsl:for-each、xsl:if、xsl:message、xsl:otherwise、xsl:param、xsl:processing-instruction、xsl:template、xsl:variable、xsl:when、xsl:with-param、出力要素 |
子要素 |
(子要素はありません) |
解説
<xsl:value-of> 要素は、select 属性で指定された、ドキュメント順で最初の要素の値を表すテキスト文字列を挿入します。
XPath (XML Path Language) 式が複数のノードを返した場合、<xsl:value-of> 要素は、返された最初のノードのテキストを返します (XMLDOMNode オブジェクトの selectSingleNode メソッドと同じ)。 返されたノードが下部構造を持つ要素である場合、<xsl:value-of> は、マークアップを削除したうえで、その要素のサブツリーの連結されたテキスト ノードを返します。
使用例
次に示す XSLT ファイルでは、子要素として <given-name> および <family-name> を含む <person> 要素から <p> 要素を作成します。 この <p> 要素には、現在のノードの最初の <given-name> 子要素の文字列値が含まれ、その後にスペースを挟んで、現在のノードの最初の <family-name> 子要素の文字列値が含まれます。
XML ファイル (family.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="family.xsl"?>
<family>
<person>
<given-name age="10">Fred</given-name>
<family-name>Smith</family-name>
</person>
<person>
<given-name age="13">Jill</given-name>
<family-name>Jones</family-name>
</person>
</family>
XSLT ファイル (family.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="person">
<p>
<xsl:value-of select="given-name"/>
<xsl:text> </xsl:text>
<xsl:value-of select="family-name"/>
</p>
</xsl:template>
</xsl:stylesheet>
出力
これは書式付き出力です。
Fred Smith
Jill Jones
これはプロセッサ出力です。
<?xml version="1.0" encoding="UTF-16"?>
<p>Fred Smith</p>
<p>Jill Jones</p>