You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中使用XPath提取XML指定文本“Hongrie”失败,求正确表达式

如何用XPath提取指定位置的“Hongrie”文本?

目标HTML代码:

<img src='something' width='16' height='16' alt='Icone Pays de production' title='Pays de production' class='base' > 
<strong>Pays de production :</strong> <a href='index.php?p=pays&pays=96' class='no'>Hongrie</a> 
<br>

问题分析:

你之前的XPath表达式//img[contains(@title, 'Pays de production')]//strong//a失效的核心原因是:img、strong、a是同级节点(共享同一个父节点),而非后代关系。//是查找后代节点的语法,自然找不到同级的strong和a。

正确的XPath表达式:

可以通过以下几种方式定位到目标文本:

  1. 基于目标img的兄弟节点定位:
//img[contains(@title, 'Pays de production')]/following-sibling::a[1]/text()
  • following-sibling::用于选取当前节点之后的同级节点
  • [1]确保选取第一个同级的a元素(避免匹配其他无关a标签)
  • /text()直接提取标签内的文本内容
  1. 基于strong的文本内容定位:
    如果你更倾向于通过strong的文本标识来定位,也可以用:
//strong[text()='Pays de production :']/following-sibling::a[1]/text()

验证说明:

以上两种表达式都能精准提取到Hongrie文本,你可以根据实际HTML结构的稳定性选择更合适的写法。

内容的提问来源于stack exchange,提问作者Julien Machin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:39:40