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

如何从当前节点提取指定名称的直接子节点(支持递归调用)

提取当前节点的直接指定子节点(排除嵌套后代)并支持递归调用

要实现从任意当前节点中提取指定名称的直接子节点,同时排除嵌套的后代节点,且方法支持递归调用,核心是使用相对路径的XPath表达式:./Member

核心逻辑

./Member 表示选中当前节点的直接子节点中名称为Member的元素:

  • . 代表当前上下文节点,确保路径是相对当前节点的
  • 没有//,不会递归查找所有后代,只取直接子节点

对应示例场景验证

针对给出的XML文档:

  • 在<Members>节点调用SelectNodes("./Member"),返回3个直接子节点:Name为A、B、C的<Member>
  • 在Name为A的<Member>节点调用,返回2个直接子节点:Name为A、B的<Member>
  • 在Name为C的<Member>节点调用,返回1个直接子节点:Name为A的<Member>

对比错误方案

  • 用.//Member会选中当前节点下所有层级的Member(包括嵌套后代),不符合需求
  • 用绝对路径Document/Members/Member只能固定从根节点查找,无法适配不同的当前节点,不支持递归调用

代码示例(C#)

// 假设currentNode是当前操作的节点
XmlNodeList targetNodes = currentNode.SelectNodes("./Member");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:57:32