Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xml文件中写入XmlDocument的特定节点_C# - Fatal编程技术网

C# 如何在xml文件中写入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(

我有一个XmlDocument,其中有个“应用程序”节点。现在,我只想在xml文件中编写“应用程序”节点。我已经在XDocument中尝试过这个方法,它的工作方式如下所示,但是如何使用XmlDocument实现同样的效果呢

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")}");
});