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

使用XPath选取指定元素的第一个子元素返回空的问题排查

你写的两个XPath表达式//main[@id='main2']/*[first()]和//main[@id='main2']/*[1]语法本身没有错误,返回空结果的核心原因如下:

  1. /*规则仅匹配目标元素的元素类型子节点,不会匹配文本节点、注释节点、处理指令等其他类型的子节点
  2. 你所确认存在的第一个子节点如果是非元素类型(最常见的是XML/HTML排版产生的换行、缩进空白文本节点,或者注释节点),这两个表达式就无法匹配到符合要求的元素节点,因此返回null。

解决方案

根据你的实际需求选择对应写法:

  • 若要获取所有类型子节点中的第一个(不限节点类型,符合你说的“不限元素类型”要求):
    //main[@id='main2']/node()[1]
    
  • 若确实需要获取第一个元素类型的子节点,先单独执行//main[@id='main2']确认能正确匹配到目标元素,再排查目标元素下是否真的存在元素类型的子节点即可。另外部分运行环境对first()函数支持度有限,优先使用[1]的写法兼容性更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:06:05