获取所有节点的XPATH

use*_*726 26 html xpath parsing

是否有一个库可以为HTML页面中的所有节点提供XPATH?

Dim*_*hev 41

是否有任何库可以为HTML页面中的所有节点提供XPATH

是的,如果此HTML页面是格式良好的XML文档.

取决于你对"节点"的理解......

//*
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有元素.

/descendant-or-self::node()
Run Code Online (Sandbox Code Playgroud)

选择所有元素,文本节点,处理指令,注释节点和根节点/.

//text()
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有文本节点.

//comment()
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有注释节点.

//processing-instruction()
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有处理指令.

//@* 
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有属性节点.

//namespace::*
Run Code Online (Sandbox Code Playgroud)

选择文档中的所有命名空间节点.

最后,您可以使用union(|)运算符组合上述任何表达式.

因此,我相信以下表达式确实选择了任何XML文档的"所有节点":

/descendant-or-self::node() | //@* | //namespace::*
Run Code Online (Sandbox Code Playgroud)

  • `// node()`不选择root,因为它扩展为`/ descendant-or-self :: node()/ child :: node()`.实际上`node()`模式与文档根不匹配. (2认同)