XSLT 上下文(点)概述
当指令遍历文档层次结构并且<xsl:for-each>指令检查与 XPath 表达式匹配的每个节点时,当前上下文节点会发生变化<xsl:apply-templates>。所有相对节点引用都相对于当前上下文节点。此节点缩写为 “.”(读作:点),可以在 XPath 表达式中引用,允许显式引用当前节点。
下面的示例包含 “.” 的四种用法。节点 system 保存在变量中 system ,以便在指令中使用 <xsl:for-each> ,其中 “”. 的值将发生更改。表达式使用 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>