1

如果我有一个上下文节点、一个 XPath 表达式和一个节点,有没有办法检查我的节点是否满足该上下文中的 XPath 表达式。

我有非常昂贵且运行时间长的 XPath 查询。在这里,我只想获取一个潜在的结果节点并检查它是否满足查询,即它将作为查询结果集的一部分返回。

我正在使用 Saxon EE 9.3

4

1 回答 1

0

如果您的上下文节点是 $N,您的表达式是 E,并且正在测试的节点是 $T,那么表达式boolean($N/(EXP) intersect $T)会执行您在问题的第一部分中要求的内容。但是,它可能不满足问题第二部分所暗示的要求,即计算应该比评估 EXP 更快。

如果表达式 EXP 采用 XSLT 模式的形式,那么答案是肯定的,有一种方法并且它可能会更快(尽管如何实现这一点取决于您使用的 Saxon API)。请注意,当 EXP 是一个模式时,$T 是否匹配该模式的问题并不取决于是否知道上下文节点 $N。

于 2012-04-15T17:06:51.090 回答