Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果我有一个上下文节点、一个 XPath 表达式和一个节点,有没有办法检查我的节点是否满足该上下文中的 XPath 表达式。
我有非常昂贵且运行时间长的 XPath 查询。在这里,我只想获取一个潜在的结果节点并检查它是否满足查询,即它将作为查询结果集的一部分返回。
我正在使用 Saxon EE 9.3
如果您的上下文节点是 $N,您的表达式是 E,并且正在测试的节点是 $T,那么表达式boolean($N/(EXP) intersect $T)会执行您在问题的第一部分中要求的内容。但是,它可能不满足问题第二部分所暗示的要求,即计算应该比评估 EXP 更快。
boolean($N/(EXP) intersect $T)
如果表达式 EXP 采用 XSLT 模式的形式,那么答案是肯定的,有一种方法并且它可能会更快(尽管如何实现这一点取决于您使用的 Saxon API)。请注意,当 EXP 是一个模式时,$T 是否匹配该模式的问题并不取决于是否知道上下文节点 $N。