【发布时间】:2019-12-21 14:59:32
【问题描述】:
不同网站提供的XPath语法不同,主要是需要"/text()"后缀。
引用语法无需后缀:
引用语法with需要后缀:
- https://en.wikipedia.org/wiki/XPath
- https://devhints.io/xpath
- https://riptutorial.com/xpath/example/6209/find-all-elements-with-certain-text
据我所知,不同的库也只能使用或不使用后缀(在此之前我没有遇到过同时使用和不使用后缀的库)。
不需要后缀:
- 浏览器 javascript(例如:Chrome)
- 贾克森 (https://github.com/jaxen-xpath/jaxen)
需要后缀:
- Java JRE 本机 XPath 实现
看起来,用于 XML 和用于 DOM 的 XPath 库实现之间很可能存在差异? 如果是这样,有什么区别,我在哪里可以找到区别?
【问题讨论】:
-
这就像“我看到有些人用叉子吃饭,有些人用勺子吃饭。哪个是正确的?”看你吃的是汤还是牛排。如果您需要文本节点,请使用
text()。如果您不查看文本节点,则不会。这与正确性或要求或实现无关,它只是关于代码需要什么。您可以通过了解 XML、DOM 和 XPath(不是来自 sn-ps,而是来自实际的 XPath 文档,例如 MDN's)来了解它们的区别。
标签: xml xpath xpath-2.0 domxpath xpath-1.0