C# 如何在xml文件中写入XmlDocument的特定节点
我有一个XmlDocument,其中有个“应用程序”节点。现在,我只想在xml文件中编写“应用程序”节点。我已经在XDocument中尝试过这个方法,它的工作方式如下所示,但是如何使用XmlDocument实现同样的效果呢C# 如何在xml文件中写入XmlDocument的特定节点,c#,C#,我有一个XmlDocument,其中有个“应用程序”节点。现在,我只想在xml文件中编写“应用程序”节点。我已经在XDocument中尝试过这个方法,它的工作方式如下所示,但是如何使用XmlDocument实现同样的效果呢 StringBuilder sb=新建StringBuilder(); doc.Root.Elements(“Application”).ToList().ForEach(x=>sb.Append(x.ToString()); 字符串xmlNodes=sb.ToString(
StringBuilder sb=新建StringBuilder();
doc.Root.Elements(“Application”).ToList().ForEach(x=>sb.Append(x.ToString());
字符串xmlNodes=sb.ToString();
writealText(“文件”,xmlNodes)代码>我建议不要混合使用XmlDocuments和XDocuments,因为它们是XML DOM管理的两种不同方法,不太容易组合在一起
如果您想使用Lynx到XML,谁不愿意;),我建议专注于X类型;XDocument、XElement等
为此,您可以手动构建对象图,或者如果愿意,也可以从源XML创建XDocument
:
var xml = @"<?xml version='1.0'?>
<Applications>
<Application id='1'>
<Name>App1</Name>
</Application>
<Application id='2'>
<Name>App2</Name>
</Application>
<Application id='3'>
<Name>App3</Name>
</Application>
<Application id='4'>
<Name>App4</Name>
</Application>
<Application id='5'>
<Name>App5</Name>
</Application>
</Applications>";
var doc = XDocument.Parse(xml);
上面的代码选择根节点下名为“Application”的所有元素。如果您选择指定“应用程序”,那么最终也会得到所有节点
有了这个元素列表,您现在可以写出一些关于它们的数据:
Console.WriteLine($"{appList.Count()} Application Elements Found:");
appList.ForEach(app =>
{
Console.WriteLine($" Application: {app.Attribute("id")}");
});
注意,这是在使用C#v6字符串插值功能-我相信如果您使用的是C#?;)的早期版本,您可以找到如何手动构造所需字符串的方法
希望这能让您找到想要的东西?事实上,我正在开发现有的应用程序,它使用XmlDocument,我不想修改现有的代码。所以我不能使用XDocument。这就是为什么我要求使用XmlDocument对象编写相同类型的代码。如果可能的话,我希望代码使用linq或通过foreach循环
Console.WriteLine($"{appList.Count()} Application Elements Found:");
appList.ForEach(app =>
{
Console.WriteLine($" Application: {app.Attribute("id")}");
});