在XSLT中,current() 函数用于获取当前节点或当前节点集合。这个函数返回一个节点集合,包含当前正在处理的节点。current() 函数通常在谓词中使用,以在模板匹配和转换过程中引用当前节点。

以下是一个简单的示例,演示了如何在XSLT中使用 current() 函数:
<!-- 输入 XML -->
<root>
  <item>Item 1</item>
  <item>Item 2</item>
  <item>Item 3</item>
</root>

<!-- XSLT 转换 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="root">
    <output>
      <!-- 使用 current() 函数在模板中引用当前节点 -->
      <xsl:apply-templates select="item[current()]"/>
    </output>
  </xsl:template>

  <xsl:template match="item">
    <item>
      <!-- 在模板中使用 current() 函数引用当前节点的文本内容 -->
      <value><xsl:value-of select="current()" /></value>
    </item>
  </xsl:template>

</xsl:stylesheet>

在这个例子中,<xsl:apply-templates select="item[current()]"/> 用于选择当前节点的所有 item 子节点,并将它们传递给匹配 item 的模板。在 <value> 元素的内容中,使用 <xsl:value-of select="current()" /> 引用当前正在处理的 item 节点的文本内容。

请注意,current() 函数返回的是节点集合,而不是单个节点。在上述示例中,由于谓词 current() 位于选择表达式中,它实际上是一个布尔上下文,只有在节点存在时才返回 true,因此实际上是选择了当前节点。

需要注意的是,current() 函数的使用可能会受到上下文的影响,因此在使用时需要仔细考虑上下文节点。


转载请注明出处:http://www.zyzy.cn/article/detail/12247/XML