2009-05-03 35 views
5

我有一个很长的一行xml字符串。我想保存XML字符串到一个文本文件中的一个不错的缩进格式:以缩进格式将xml字符串或XmlNode保存为文本文件?

<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库?

回答

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"); 
+0

其中是XDocument,我的意思是命名空间? – 2009-05-03 02:37:27

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()