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

使用C#删除XML节点仅清空内容未删除节点,如何彻底删除?

问题解决:彻底删除XML中的Flight节点

你的代码里用elem.RemoveAll()只会清空Flight节点的属性和子元素,不会删除节点本身,所以才会留下<Flight />空标签。要彻底删除整个Flight节点,只需要把elem.RemoveAll()替换成elem.Remove(),同时可以简化代码逻辑,避免不必要的嵌套循环:

修改后的代码:

private void b_delete_Click(object sender, EventArgs e)
{
    var xDoc = XDocument.Load(input);
    // 筛选出ID为"1"的Flight节点并彻底删除
    xDoc.Descendants("Flight")
        .Where(flight => flight.Attribute("ID")?.Value == "1")
        .Remove();
    xDoc.Save(input);
    MessageBox.Show("删除成功");
}

说明:

  • Descendants("Flight"):获取XML中所有Flight节点
  • Where(...):筛选出ID属性值等于"1"的目标节点
  • Remove():直接删除选中的节点,而不是清空内容,这样XML里不会留下空的Flight标签,也就不会破坏你的自动生成ID功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 14:15:30