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

如何在JSDOM中通过XPath语法获取XML节点的属性值

问题原因

该问题是XPath求值的上下文节点与路径匹配逻辑不匹配导致的:
你调用doc.evaluate时传入的上下文为doc(XML文档节点),而JSDOM中对文档节点作为上下文的相对路径匹配逻辑和多数在线XPath测试工具存在差异。

解决方案

以下两种修改方式都可以正常拿到属性值:

方案1:改用绝对路径匹配

直接从文档根节点开始定位元素,调整XPath表达式即可:

const date = doc.evaluate("/PARAGRAPH/DATE/@ISO", doc, null, 2, null).stringValue;

方案2:将根元素作为求值上下文

先获取XML的根元素作为上下文,再写对应相对路径:

const root = doc.documentElement;
const date = doc.evaluate("DATE/@ISO", root, null, 2, null).stringValue;

两种方案输出结果均为预期的"20131117"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:27:03