You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在使用xPath.evaluate()时选择匹配指定文本的ITEM节点而非其父节点

解决XPath匹配指定文本ITEM节点的问题

嘿,我懂你现在的困扰——用/ITEMS/ITEM["example text 1"]的时候居然返回了整个ITEMS父节点,而不是你想要的那个匹配特定文本的ITEM节点,而且还没办法修改现有XML结构对吧?

其实问题出在表达式的写法上:你当前的写法本质是在判断「是否存在包含该文本的ITEM节点」,返回的是符合条件的父节点。要精准定位到目标ITEM,你需要明确指定匹配节点的文本内容,用text()函数就能实现:

/ITEMS/ITEM[text()="example text 1"]

额外小提示

如果你的ITEM节点文本前后可能带有空格、换行这类空白字符(XML里经常会出现这种情况),担心因为空白导致匹配失败的话,可以用normalize-space()函数统一处理空白内容:

/ITEMS/ITEM[normalize-space(text())="example text 1"]

这样就能准确返回那个包含"example text 1"的单个ITEM节点了。

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

火山引擎 最新活动