2009-05-03 14 views
5

मेरे पास एक एक्सएमएल स्ट्रिंग है जो एक पंक्ति में बहुत लंबी है। मैं एक अच्छा मांगपत्र प्रारूप में किसी पाठ फ़ाइल में 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> 

क्या नेट पुस्तकालयों यह करने के लिए सी # के लिए उपलब्ध हैं?

उत्तर

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

ही सिस्टम.एक्सएमएल नेमस्पेस के साथ परिणाम ...

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

एक्सडॉक्यूमेंट कहां है, मेरा नाम नेमस्पेस है? –

+0

System.Xml.Linq, लेकिन आप मूल रूप से XmlDocument क्लास के साथ एक ही चीज़ कर सकते हैं। –

3

मैं यह मानने जा रहा हूं कि आपके पास कोई सिस्टम नहीं है। इसमें कुछ एक्सएमएल के साथ स्ट्रिंग इंस्टेंस है, और मुझे उम्मीद है कि आप स्ट्रिंग मैनिपुलेशन के माध्यम से इसे नहीं बनायेंगे।

कहा, तुम सब जब आप अपने 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() 
संबंधित मुद्दे