如何使用单个xpath表达式获取H1,H2,H3,....

Aiv*_*ler 18 xpath

如何在单个xpath表达式中获取H1,H2,H3内容?

我知道我能做到这一点.

//html/body/h1/text()
//html/body/h2/text()
//html/body/h3/text() 
Run Code Online (Sandbox Code Playgroud)

等等.

Dim*_*hev 29

用途:

/html/body/*[self::h1 or self::h2 or self::h3]/text()
Run Code Online (Sandbox Code Playgroud)

以下表达式不正确:

//html/body/*[local-name() = "h1"  
           or local-name() = "h2"  
           or local-name() = "h3"]/text()  
Run Code Online (Sandbox Code Playgroud)

因为它可以选择是孩子文本节点unwanted:h1,different:h2,someWeirdNamespace:h3.

另一个建议://当静态知道XML文档的结构时,始终避免使用.//最常使用会导致显着的低效率,因为它会导致遍历上下文节点中的完整文档(子)树.

  • 在性能问题上,您的里程可能会有所不同.有些产品会使用// x来优化查询. (2认同)
  • 伟大的!我需要 body 下的后代选择器来获取所有标题:`/html/body//*[self::h1 or self::h2 or self::h3]/text()` (2认同)