gpt4 book ai didi

c# - 如何删除 XML 中的节点标记

转载 作者:数据小太阳 更新时间:2023-10-29 02:53:57 24 4
gpt4 key购买 nike

我有这样一个 XML

<DataBases>
<DataBase Name="725" />
<DataBase Name="425"/>
</DataBases>

我正在尝试使用以下代码删除 Name Tag 425。

XmlDocument document = new XmlDocument();
document.Load(fileName);
XmlNodeList nodes = document.GetElementsByTagName("DataBase");
foreach (XmlNode node in nodes)
{
foreach (XmlAttribute attribute in node.Attributes)
{
if (attribute.Value == "425")
{
node.RemoveAll();
break;
}
}
}
document.Save(fileName);

结果将是:

<DataBases>
<DataBase Name="725" />
<DataBase />
</DataBases>

只删除了名称属性,我也想删除数据库标签。

所需的正确结果是:

<DataBases>
<DataBase Name="725" />
</DataBases>

我怎样才能做到这一点?

最佳答案

您可以使用 LINQ to XML 来解析和转换 xml。下面显示示例:

var xml  ="<DataBases>\r\n  <DataBase Name=\"725\" />\r\n  <DataBase Name=\"425\"/>\r\n</DataBases>";
var root = XDocument.Parse(xml);

//removing all DataBase nodes with Name="425"
root.Descendants("DataBase")
.Where(node => node.Attribute("Name").Value == "425")
.Remove();

Console.WriteLine (root.ToString());

打印:

<DataBases>
<DataBase Name="725" />
</DataBases>

关于c# - 如何删除 XML 中的节点标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16689154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com