0

是否可以使用 xslt 1.0 中的键功能访问节点集的文本节点?我有以下代码:

<xsl:variable name="Items">
        <Item ID="ID1">name1</Item>
        <Item ID="ID2">name2</Item>
</xsl:variable>

<xsl:key name="get_item_by_ID" match="exsl:node-set($Items)/Item" use="@ID"/>

<xsl:template match="/Items">
    <xsl:value-of select="key('get_item_by_ID', @ItemID)/text()"></xsl:value-of>
 </xsl:template> 

我想通过当前项目的 ItemID 搜索节点集的文本,以便通过它的预定义节点集文本(ID1:name1,ID2:name2)重命名项目。

4

1 回答 1

0

你在这里有一个上下文问题:

创建的节点集exsl:node-set($Items)是一个单独的“文档”。您不能在元素的match属性中指定要匹配的文档。<key>

在调用 key() 函数之前,必须将上下文切换到所需的文档(在 XSLT 2.0 中,您可以在 key() 函数本身中指定要匹配的文档)。

于 2014-11-14T11:54:06.293 回答