Evgeniy Asked: 2024-05-23 21:51:33 +0800 CST2024-05-23 21:51:33 +0800 CST 2024-05-23 21:51:33 +0800 CST 如何使用XPath获取以下元素? 772 我有一段像这样的HTML代码: ```html b lorem ipsum ``` 我想获取与`span`元素相关的文本"lorem ipsum"。 我尝试了`//following::span[@class="a"]/text()`,在我看来是正确的,正如其他帖子中提到的 - 但这个对我来说没有起作用。 xpath 3 个回答 Voted Best Answer Stavr00 2024-05-23T22:03:22+08:002024-05-23T22:03:22+08:00 "Lorem ipsum" 实际上属于 li 元素作为第二个文本节点,第一个是 li 和 span 元素之间的空白。 这里有一个快速的 XPATH 可以返回那个值: //span[@class="a"]/../text()[last()] 警告/注意:将 HTML 解析为 XML 文档可能不起作用,因为 HTML 不需要遵守元素嵌套。 LMC 2024-05-23T22:48:04+08:002024-05-23T22:48:04+08:00 这个XPath将获取那个文本 normalize-space(//span[@class='a']/following-sibling::text()) Daniel Haley 2024-05-24T01:06:28+08:002024-05-24T01:06:28+08:00 我会以一种与其它答案略有不同的方式去做,但这仅仅是我个人的偏好,我不喜欢在没有必要的情况下回溯到树的上层(使用..)或者使用following-sibling::轴。 //li[span[@class="a"]]/text()[normalize-space()]
"Lorem ipsum" 实际上属于
li
元素作为第二个文本节点,第一个是li
和span
元素之间的空白。这里有一个快速的 XPATH 可以返回那个值:
//span[@class="a"]/../text()[last()]
警告/注意:将 HTML 解析为 XML 文档可能不起作用,因为 HTML 不需要遵守元素嵌套。
这个XPath将获取那个文本
我会以一种与其它答案略有不同的方式去做,但这仅仅是我个人的偏好,我不喜欢在没有必要的情况下回溯到树的上层(使用
..
)或者使用following-sibling::
轴。