【发布时间】:2020-08-18 21:16:00
【问题描述】:
根据我对 XPath 的理解,对于任何 HTML 或 XML 文档:$x("/node()") 表示 $x("/child::node()") 表示返回作为上下文节点的子节点的节点。这里,根节点(/) 是上下文节点。因此,它返回html 元素。
$x("node()") 表示$x("child::node()"),它也返回相同的html 元素。但是在这种情况下,与上述情况不同,我们没有提供上下文节点。那么,在这种情况下它是如何识别上下文节点的呢?
此外,上述 XPath 表达式在语法和功能上是否相同。
【问题讨论】:
-
我不同意“因此,它返回html元素”的结论,文档节点或根节点之前和/或之后可以有cmets和处理指令(至少在XML中)
/node()也选择的根元素。虽然 XPath 不知道 DOCTYPE 节点,但我认为 Chrome$x('/node()')也会包含这样的 DOCTYPE 节点(如果 HTML 文档或可能的 XML 文档中存在)。