如何在XPath选择器中处理sup标签以提取目标文本
解决XPath提取文本时标签的干扰问题
针对你遇到的标签阻碍文本提取的问题,给你几个实用的解决办法:
直接提取整个节点的纯文本
用XPath的string()函数可以直接获取指定节点下的所有文本内容,不管嵌套多少子标签。表达式写:string(//p[@class='result'])拿到的内容是
Final result 0:2 (4:6, 65:7),之后你可以用字符串替换把中间的5删掉,或者直接截取括号里的部分再处理。精准提取目标片段的文本节点并拼接
如果你只需要括号里的内容,可以定位到括号开头的文本和后面的文本节点,表达式如下://p[@class='result']/text()[last()] | //p[@class='result']/sup/following-sibling::text()执行后会得到两个文本片段:
(4:6, 6和:7),把它们拼起来就是你要的(4:6, 6:7)。分步提取拼接
先单独拿括号前半部分://p[@class='result']/text()[last()]再拿后面的部分:
//p[@class='result']/sup/following-sibling::text()最后把两个结果拼接,直接得到目标文本。
原HTML代码:
<p class="result"><span class="bold">Final result </span><strong>0:2</strong> (4:6, 6<sup>5</sup>:7)</p>
内容的提问来源于stack exchange,提问作者benjamin olise
相关产品推荐
相关产品推荐

