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

在C#中遍历XML并移动指定子元素的技术需求

调整XML中Claim元素内的OrderClosed位置

原XML结构如下:

<Order>
    <Header>
        <SenderName>Tim</SenderName>
    </Header>
    <Body>
        <Claim>
            <OrderNumber>12345</OrderNumber>
            <OrderClosed>2023-12-09</OrderClosed>
            <OrderDate>2023-12-07</OrderDate>
            <Service>
                <Operation>Order</Operation>
            </Service>
        </Claim>
        <Claim>
            <OrderNumber>67891</OrderNumber>
            <OrderClosed>2023-12-05</OrderClosed>
            <OrderDate>2023-12-04</OrderDate>
            <Service>
                <Operation>Order</Operation>
            </Service>
        </Claim>
    </Body>
</Order>

使用XDocument实现

using System.Xml.Linq;

// 加载XML文档
XDocument doc = XDocument.Load("你的XML文件路径");

// 遍历所有Claim元素
foreach (XElement claim in doc.Descendants("Claim"))
{
    // 获取当前Claim下的OrderClosed和OrderDate元素
    XElement orderClosed = claim.Element("OrderClosed");
    XElement orderDate = claim.Element("OrderDate");
    
    if (orderClosed != null && orderDate != null)
    {
        // 先移除OrderClosed
        orderClosed.Remove();
        // 将OrderClosed插入到OrderDate的紧后方
        orderDate.AddAfterSelf(orderClosed);
    }
}

// 保存修改后的XML
doc.Save("修改后的XML文件路径");

使用XmlDocument实现

using System.Xml;

// 加载XML文档
XmlDocument doc = new XmlDocument();
doc.Load("你的XML文件路径");

// 获取所有Claim节点
XmlNodeList claimNodes = doc.SelectNodes("//Claim");

foreach (XmlNode claim in claimNodes)
{
    XmlNode orderClosed = claim.SelectSingleNode("OrderClosed");
    XmlNode orderDate = claim.SelectSingleNode("OrderDate");
    
    if (orderClosed != null && orderDate != null)
    {
        // 先移除OrderClosed
        claim.RemoveChild(orderClosed);
        // 将OrderClosed插入到OrderDate的紧后方
        claim.InsertAfter(orderClosed, orderDate);
    }
}

// 保存修改后的XML
doc.Save("修改后的XML文件路径");

说明

  • 两种方法都会遍历所有<Claim>元素,确保每个Claim下的<OrderClosed>都被移动到<OrderDate>之后
  • 代码中加入了空值判断,避免因节点不存在导致异常
  • 替换代码中的文件路径为实际路径即可运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 20:45:14