2009-05-03 26 views
5

Tôi có chuỗi xml dài một dòng. Tôi muốn lưu các chuỗi xml vào một tập tin văn bản trong một định dạng thụt đẹp:Lưu chuỗi xml hoặc XmlNode vào tệp văn bản ở định dạng thụt lề?

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

Định dạng tôi thích:

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

thư viện Net là gì sẵn cho C# để làm điều đó?

Trả lời

7

này sẽ làm việc cho những gì bạn muốn làm ...

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

Same kết quả với không gian tên System.Xml ...

var xdoc = new XmlDocument(); 
xdoc.LoadXml(samp); 
xdoc.Save(@"c:\temp\myxml.xml"); 
+0

đâu là XDocument, ý tôi là không gian tên? –

+0

System.Xml.Linq, nhưng bạn có thể làm điều tương tự với lớp XmlDocument. –

3

Tôi sẽ giả sử bạn không có nghĩa là bạn có một trường hợp System.String với một số XML trong đó, và tôi hy vọng bạn không tạo ra nó thông qua thao tác chuỗi.

Điều đó nói rằng, tất cả các bạn phải làm là thiết lập các thiết lập thích hợp khi bạn tạo XmlWriter của bạn:

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() 
Các vấn đề liên quan