如何使用XPath获取包含指定文本的h3标签对应的后续dd元素内容
实现方案
你可以通过XPath的节点轴来定位当前h3之后的dd元素,根据你的HTML结构,有两种常用写法:
场景1:和你给出的示例结构一致,h3后续第一个同级dl下的dd
写法:
//h3[contains(text(),'2.2')]/following-sibling::dl[1]/dd/text()
说明:
following-sibling::轴:选取当前h3节点之后所有同级的节点dl[1]:匹配h3之后第一个出现的dl同级节点- 最后取该dl下dd节点的文本内容
场景2:需要匹配h3之后任意位置的dd(不受层级限制)
写法:
//h3[contains(text(),'2.2')]/following::dd[1]/text()
说明:
following::轴:选取当前h3节点之后文档中所有的节点,不受同级限制dd[1]:匹配第一个出现的dd节点,如果你要获取所有符合条件的dd,去掉[1]即可
优化提示
如果你的h3标签内有嵌套的其他标签,文本不是直接挂载在h3下的话,可以把匹配条件改成contains(.,'2.2'),.会自动提取h3节点的全部文本内容,兼容性更强:
//h3[contains(.,'2.2')]/following::dd[1]/text()
内容的提问来源于stack exchange,提问作者FenrisL
相关产品推荐
相关产品推荐

