You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过DOM XPath选择嵌套<p><p>与</p></p>标签间的内容?

解决嵌套

标签的内容选择问题

问题根源

浏览器会自动修正HTML中的无效嵌套标签,你提供的<p><p>TEXT I WANT TO SELECT</p></p>在实际渲染的DOM里会被解析成:

<div class="col-sm-5"> 
  <h2>Title</h2> 
  <p></p>
  <p>TEXT I WANT TO SELECT</p>
  <p></p>
</div>

这就是你之前的XPath无法正确选中目标内容的核心原因。

正确选择方式

方法1:XPath选择器

  • 精准匹配文本内容:
    //p[text()='TEXT I WANT TO SELECT']
    
  • 模糊匹配(适用于文本有变动的场景):
    //p[contains(text(), 'TEXT I WANT TO SELECT')]
    
  • 结合父容器定位(避免全局匹配干扰):
    //div[@class='col-sm-5']/p[text()='TEXT I WANT TO SELECT']
    

方法2:CSS选择器

  • 直接匹配文本(部分工具支持):
    p:has-text('TEXT I WANT TO SELECT')
    
  • 结合父容器+位置定位:
    .col-sm-5 p:nth-child(3)
    

(解析后目标<p>是父容器下第三个子元素,<h2>为第一个,空<p>为第二个)

特殊场景:基于原始未修正HTML操作

如果是直接在未被浏览器解析的原始HTML源码中操作,可使用:

//p/p/text()

这种情况较少见,因为多数工具会遵循浏览器的DOM解析规则。

内容的提问来源于stack exchange,提问作者Bart van Hoek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:29:51