XSLT コンテキスト(ドット)の概要
命令が文書階層を<xsl:apply-templates>
トラバースし、命令が <xsl:for-each>
XPath 式に一致する各ノードを検査すると、現在のコンテキスト・ノードは変更されます。すべての相対ノード参照は、現在のコンテキスト ノードに対して相対的です。このノードは短縮された" (.
read: dot) であり、XPath 式で参照でき、現在のノードへの明示的な参照を可能にします。
次の例では、「.
」の 4 つの用途が含まれています。ノードはsystem
、 ".
"の値が変更される命令内<xsl:for-each>
で使用するための変数に保存されますsystem
。式はfor-each
select
、要素の値を意味するために"".
をname
使用します。".
"は要素のname
値を要素に引き出<tag>
すために使用されます。次に、テストは<xsl:if>
""を.
使用して現在のコンテキストノードの値を参照します。
<xsl:template match="system"> <xsl:variable name="system" select="."/> <xsl:for-each select="name-server/name[starts-with(., '10.')]"> <tag><xsl:value-of select="."/></tag> <xsl:if test=". = '10.1.1.1'"> <match> <xsl:value-of select="$system/host-name"/> </match> </xsl:if> </xsl:for-each> </xsl:template>