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

在C#中根据id节点值选取对应XML节点的name值

根据ID匹配XML节点获取对应值的实现方案

Python 实现

推荐工具

  • 内置库 xml.etree.ElementTree:无需额外安装,满足基础XML处理需求
  • 第三方库 lxml:支持更复杂的XML语法、XPath扩展,处理大文件更高效

代码示例(用内置库)

import xml.etree.ElementTree as ET

# 假设XML内容如下,也可以从文件读取(用ET.parse('file.xml'))
xml_str = """
<root>
  <unit>
    <id>1</id>
    <name>foo</name>
  </unit>
  <unit>
    <id>2</id>
    <name>bar</name>
  </unit>
</root>
"""

# 解析XML
root = ET.fromstring(xml_str)
# 用XPath直接定位id=2的unit节点下的name
target_name = root.find(".//unit[id='2']/name").text
print(target_name)  # 输出 bar

Java 实现

推荐工具

  • JDK内置 javax.xml.xpath:无需额外依赖,适合基础场景
  • 第三方库 dom4j:API更友好,支持完整的XPath和DOM操作

代码示例(用内置API)

import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.ByteArrayInputStream;

public class XmlLookup {
    public static void main(String[] args) throws Exception {
        String xmlContent = """
                <root>
                  <unit>
                    <id>1</id>
                    <name>foo</name>
                  </unit>
                  <unit>
                    <id>2</id>
                    <name>bar</name>
                  </unit>
                </root>
                """;

        // 构建文档对象
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document doc = builder.parse(new ByteArrayInputStream(xmlContent.getBytes()));

        // 用XPath查询目标值
        XPath xpath = XPathFactory.newInstance().newXPath();
        String result = xpath.evaluate("//unit[id='2']/name/text()", doc);
        System.out.println(result); // 输出 bar
    }
}

通用思路总结

  • 核心逻辑都是先找到与目标ID匹配的<unit>节点,再提取其下<name>的文本内容
  • 优先用XPath表达式,语法简洁直接,//unit[id='目标ID']/name就能精准定位节点
  • 简单XML用语言内置库足够,复杂场景(如带命名空间、超大XML文件)再考虑第三方库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 20:15:10