C# 是否以缩进格式将xml字符串或XmlNode保存到文本文件?

C# 是否以缩进格式将xml字符串或XmlNode保存到文本文件?,c#,.net,xml,C#,.net,Xml,我有一个xml字符串,它在一行中非常长。我想以良好的缩进格式将xml字符串保存到文本文件中: <root><app>myApp</app><logFile>myApp.log</logFile><SQLdb><connection>...</connection>...</root> myAppmyApp.log。。。。。。 我喜欢的格式是: <root> <a

我有一个xml字符串,它在一行中非常长。我想以良好的缩进格式将xml字符串保存到文本文件中:

<root><app>myApp</app><logFile>myApp.log</logFile><SQLdb><connection>...</connection>...</root>
myAppmyApp.log。。。。。。
我喜欢的格式是:

<root>
   <app>myApp</app>
   <logFile>myApp.log</logFile>
   <SQLdb>
      <connection>...</connection>
      ....
   </SQLdb>
</root>

myApp
myApp.log
...
....

有哪些.Net库可供C#使用?

我假设您不是说您有一个System.String实例,其中包含一些XML,我希望您不要通过字符串操作创建它

也就是说,在创建XmlWriter时,只需设置适当的设置:

var sb = new StringBuilder();
var settings = new XmlWriterSettings {Indent = true};
using (var writer = XmlWriter.Create(sb, settings))
{
    // write your XML using the writer
}

// Indented results available in sb.ToString()

这将为你想做的事工作

var samp = @"<root><app>myApp</app><logFile>myApp.log</logFile></root>";    
var xdoc = XDocument.Load(new StringReader(samp), LoadOptions.None);
xdoc.Save(@"c:\temp\myxml.xml", SaveOptions.None);

XDocument在哪里,我是说namespace?System.Xml.Linq,但是您可以对XmlDocument类做基本相同的事情。
var xdoc = new XmlDocument();
xdoc.LoadXml(samp);
xdoc.Save(@"c:\temp\myxml.xml");