以下是一个简单的示例,演示了如何在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.pingtaimeng.com/article/detail/12247/XML