如何使用XPath获取包含span标签的段落完整文本
嘿,我来帮你解决这个XPath提取文本的问题!先把你的HTML结构贴出来方便参考:
<ul> <li class="xyz"> <div class="divClass"> <span class="ContentItem---status---dL0iS"> <span>Success</span> </span> <p class="ContentItem---title---37IqA"> <span>Test Check</span> : Please display the text </p> </div> </li> <li class="xyz"> <div class="divClass"> <span class="ContentItem---status---dL0iS"> <span>Not COMPLETED</span> </span> <p class="ContentItem---title---37IqA"> <!-- 你的代码片段在这里截断了,但方法通用 --> </p> </div> </li> </ul>
要获取包含span标签的
元素的完整文本内容,可以用这几种XPath写法:
1. 先定位符合条件的p元素
如果你需要先找到所有包含span子元素的p标签,可以用:
//p[span]
要是你想精准匹配class(避免匹配到页面上其他无关的p元素),可以加上class筛选条件:
//p[contains(@class, 'ContentItem---title---37IqA') and span]
2. 直接获取完整文本内容
如果想直接拿到这些p元素的全部文本(包括子span里的文本和p自身的文本,比如示例里的Test Check : Please display the text),可以用XPath的string()函数:
string(//p[span])
如果页面上有多个符合条件的p元素,想要一次性获取所有文本,在浏览器控制台或者支持XPath的工具里,可以用类似这样的方式(以Chrome为例):
$x("//p[span]").map(el => el.textContent)
这样会返回一个包含所有匹配p元素完整文本的数组。
简单解释下:p[span]是筛选出包含span子元素的p标签,string()函数会把该元素下所有层级的文本节点拼接起来,得到你需要的完整内容;而textContent(不同工具里可能叫text()或者text_content())也能提取元素的全部文本内容。
内容的提问来源于stack exchange,提问作者user2606528
相关产品推荐
相关产品推荐

