如何使用XPath从指定div区块中提取目标价格内容
目标内容是对应div的直接尾部文本节点,不包含在内部span标签内,你可以根据实际场景选择以下写法:
精准匹配class的写法(class属性完全和示例一致时使用)
代码:normalize-space(//div[@class="col search_price discounted responsive_secondrow"]/text()[last()])
说明:先通过class属性定位到目标div节点,text()[last()]取div的最后一个直接文本节点(就是<br>标签后的价格内容),normalize-space()函数会自动去除文本前后的多余空白,直接返回22 973 ₴结果。模糊匹配class的写法(如果页面里class属性顺序有变动、或新增其他类名时使用)
代码:normalize-space(//div[contains(@class,"search_price discounted")]/text()[last()])
说明:通过contains匹配class里的核心特征段,适配class属性有小幅度变动的场景。排除span内文本的通用写法
代码:normalize-space(//div[@class="col search_price discounted responsive_secondrow"]/text()[not(parent::span)])
说明:主动过滤掉属于span子节点的文本内容,只保留div自身的文本,适合div内直接文本节点数量少的场景。
内容的提问来源于stack exchange,提问作者Deniss Zadorozhniy

