如何使用XPath获取包含“Canon”文本的h4后的div元素?
解决XPath获取指定h4后div的问题
嘿,我来帮你搞定这个XPath的小问题!
你当前的表达式没拿到目标元素的原因是:你选中的是h4内部的文本节点(就是"Canon"那串文字),然后找它的following-sibling——但这个文本节点的同级兄弟是h4标签内部的其他节点(这里根本没有),自然找不到外面的div啦。我们得先定位到包含该文本的h4元素本身,再去它的兄弟节点里找目标div。
正确的XPath表达式
- 精准匹配文本(适合文本无多余空格的情况):
//h4[text()="Canon"]/following-sibling::div[1] - 兼容文本前后有空格/换行的情况(更健壮):
//h4[normalize-space(text())="Canon"]/following-sibling::div[1]
表达式拆解解释
//h4[text()="Canon"]:遍历整个文档,找到所有**文本内容恰好是"Canon"**的h4元素/following-sibling::div[1]:选中这个h4元素的第一个同级div兄弟节点,也就是你要找的那个价格div
用这个表达式测试你给出的HTML结构,就能精准选中<div class="price">From € 599,-</div>啦。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

