XSLT - 如何从另一个临时文档中的一个文档中保存节点,然后再检索它?

时间:2011-07-13 09:58:57

标签: xslt

这不是我想要做的,但这是我需要的功能的简单案例。我想在处理一个文档中的节点和处理原始文档处理期间创建的临时文档中的节点之间进行切换。为此,我想将原始文档中的节点“保存”到临时文档中,以便我可以返回到它。我可以轻松地将节点本身“保存”到临时文档中,但作为临时文档的一部分,如果另一个节点是原始文档中该节点的祖先,我就不能再进行测试。

我可以想象使用generate-id来做到这一点。我不会保存节点本身,而是保存一个id,然后使用id返回到原始文档中的节点。这种方法的问题是我不能要求其generate-id是这样的节点。我可以通过树找到它,但我正在寻找一种更简单,更快速的访问方法。

是否存在?

提前致谢。

1 个答案:

答案 0 :(得分:1)

按照generate-id()

为每个感兴趣的节点编制索引
 <xsl:key name="kNodeById" match="node()"
  use="generate-id()"/>

并按其ID $vId

访问该节点
key('kNodeById', $vId)