需要帮助理解 - XPath/XSLT 中的上下文节点和当前节点

Aru*_*hit 5 xslt xpath nodes

我正在浏览理解 XPath 处理器术语中的一些在线材料。在这里我找到了当前节点上下文节点的定义如下。

当前 节点 当前节点是 XPath 处理器在开始评估查询时正在查看的节点。换句话说,当前节点是 XPath 处理器开始执行查询时使用的第一个上下文节点。在查询评估期间,当前节点不会更改。如果将文档传递给 XPath 处理器,则根节点是当前节点。如果将节点传递给 XPath 处理器,则该节点就是当前节点。

上下文节点 上下文节点是 XPath 处理器当前正在查看的节点。当 XPath 处理器评估查询时,上下文节点会发生变化。如果将文档传递给 XPath 处理器,则根节点是初始上下文节点。如果将节点传递给 XPath 处理器,则传递的节点是初始上下文节点。在评估查询期间,初始上下文节点也是当前节点。

虽然定义对于理解当前节点和上下文节点之间的差异有点好,但示例对我来说实际上并不能很好地理解差异。

任何人都可以给我一些很好的例子来明确地展示以下两件事吗?

  • xpath在评估过程中,当前节点是固定的,但上下文节点不断变化。
  • 上下文节点当前节点彼此一致。

Jen*_*rat 2

仅当您位于 XSLT 范围内时,当前节点才相关;它指的是当前模板应用到的节点,可以使用 访问current()

对于普通 XPath(没有 XSLT),此功能不可用,并且当前既不可访问也不相关。

有关 XSLT 中当前节点的更多详细信息,我指的是 Paul A Jungwirth在另一个问题上的回答。