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

如何获取子节点id匹配somevalue=0的node2节点id的node1节点?

问题:筛选符合条件的node1节点

给定如下XML文档:

<?xml version="1.0"?>
<parent>
  <node1>
    <id>id1</id>
    <name>name1</name>
  </node1>
  <node1>
    <id>id2</id>
    <name>name2</name>
  </node1>

  <node2>
    <id>id1</id>
    <somevalue>0</somevalue>
  </node2>
  <node2>
    <id>id2</id>
    <somevalue>1</somevalue>
  </node2>
</parent>

需求:获取所有node1节点,要求其id子节点的值等于somevalue为0的node2节点的id值。之前尝试的node1[../node2[somevalue = 0]/id = id]/name无法生效,需要正确的XPath表达式。


正确的XPath表达式

获取符合条件的node1节点

/parent/node1[id = /parent/node2[somevalue=0]/id]

直接获取对应的name节点

/parent/node1[id = /parent/node2[somevalue=0]/id]/name

原表达式失效原因

你之前的表达式node1[../node2[somevalue = 0]/id = id]问题出在路径上下文:当在node1节点的上下文中使用../,会回到parent的父节点(即XML根节点),而根节点下并没有node2节点,因此无法匹配到目标数据。

如果以parent节点为当前上下文,也可以用相对路径写法:

node1[id = node2[somevalue=0]/id]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 09:31:31