2009-05-03 16 views
5

Tek satırda çok uzun olan bir xml dizilim var. Ben güzel girinti biçiminde bir metin dosyasına xml dizesi kaydetmek istiyorum:Xml dizesini veya XmlNode'u metin biçiminde girinti biçiminde kaydeder misiniz?

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

biçimi tercihim:

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

.Net kütüphaneleri bunu yapmak için C# için kullanılabilir nelerdir?

cevap

7

Bu yapmak istediğiniz şey için çalışacak ...

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 ad alanı ile ...

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

XDocument, ad alanı nedir? –

+0

System.Xml.Linq, ancak temel olarak XmlDocument sınıfı ile aynı şeyi yapabilirsiniz. –

3

İçinde bir XML'le bir System.String örneğiniz olduğu anlamına gelmediğini ve dize manipülasyonu ile oluşturmamanızı umarım. sözü

, size XmlWriter oluştururken uygun ayarları ayarlanır yapmanız gereken tek şey: Aynı

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() 
İlgili konular