如何使用XPath在ID为contacts的父元素下查找含指定文本的子元素
问题原因
你原有XPath语句的语法错误在于:/ 路径符后直接跟了筛选条件[contains(text(),'hello')],没有指定需要筛选的节点范围,不符合XPath的语法规范。
正确XPath写法
分不同场景使用对应语句:
- 匹配
contacts元素下所有层级包含hello文本的子元素://*[@id='contacts']//*[contains(text(),'hello')] - 仅匹配
contacts元素的直接一级子元素中包含hello文本的节点://*[@id='contacts']/*[contains(text(),'hello')]
补充优化建议
如果目标hello文本可能嵌套在子元素的内部标签中(比如<div>你好 <span>hello</span></div>这种结构),可以把text()替换为.,匹配当前节点的全部文本内容,避免漏匹配:
//*[@id='contacts']//*[contains(.,'hello')]
内容的提问来源于stack exchange,提问作者petro99
相关产品推荐
相关产品推荐

