我有一个xml字符串,它在一行中很长。我想以一种漂亮的缩进格式将xml字符串保存到文本文件中:
<root><app>myApp</app><logFile>myApp.log</logFile><SQLdb><connection>...</connection>...</root>
我喜欢的格式:
<root>
<app>myApp</app>
<logFile>myApp.log</logFile>
<SQLdb>
<connection>...</connection>
....
</SQLdb>
</root>
C#可以使用哪些.Net库来执行此操作?
答案 0 :(得分:7)
这适用于您想要做的事情......
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);
与System.Xml命名空间相同的结果......
var xdoc = new XmlDocument();
xdoc.LoadXml(samp);
xdoc.Save(@"c:\temp\myxml.xml");
答案 1 :(得分:3)
我假设你并不是说你有一个带有一些XML的System.String实例,我希望你不要通过字符串操作来创建它。
那就是说,你要做的就是在创建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()