साथ स्ट्रिंग के लिए लिखने के लिए मैं घोषणा के साथ और UTF-8 एन्कोडिंग के साथ एक स्ट्रिंग के लिए एक्सएमएल लिखने में सक्षम होना चाहता हूँ। यह पूरा करने के लिए शक्तिशाली मुश्किल लगता है।फोर्स XDocument UTF-8 एन्कोडिंग
मैं थोड़ा के आसपास पढ़ सकते हैं और इस के लिए लोकप्रिय कुछ उत्तर की कोशिश की लेकिन वे सभी मुद्दे है। मेरा वर्तमान कोड यूटीएफ -8 के रूप में सही ढंग से आउटपुट करता है लेकिन एक्सडॉक्यूमेंट (यानी इंडेंट्स/व्हाइटस्पेस) के मूल स्वरूपण को बनाए रखता है!
किसी को कुछ सलाह दे सकते हैं, कृपया?
XDocument xml = new XDocument(new XDeclaration("1.0", "utf-8", "yes"), xelementXML);
MemoryStream ms = new MemoryStream();
using (XmlWriter xw = new XmlTextWriter(ms, Encoding.UTF8))
{
xml.Save(xw);
xw.Flush();
StreamReader sr = new StreamReader(ms);
ms.Seek(0, SeekOrigin.Begin);
String xmlString = sr.ReadToEnd();
}
एक्सएमएल तरह से करने के लिए समान होना स्वरूपण की आवश्यकता है .ToString()
यानी स्वरूपित हैं
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<root>
<node>blah</node>
</root>
क्या मैं वर्तमान में दिखाई दे रही है
<?xml version="1.0" encoding="utf-8" standalone="yes"?><root><node>blah</node></root>
मेरे पास है अद्यतनXmlTextWriter
सेटिंग्स जोड़कर इसे काम करने में कामयाब रहा ... हालांकि यह बहुत मुश्किल लगता है !
MemoryStream ms = new MemoryStream();
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.ConformanceLevel = ConformanceLevel.Document;
settings.Indent = true;
using (XmlWriter xw = XmlTextWriter.Create(ms, settings))
{
xml.Save(xw);
xw.Flush();
StreamReader sr = new StreamReader(ms);
ms.Seek(0, SeekOrigin.Begin);
String blah = sr.ReadToEnd();
}
क्या स्वरूपण 'को दे? आपने स्वरूपण के बारे में कुछ भी नहीं कहा है! – AakashM
सामान्य खाली स्थान के/स्वरूपण है कि आप एक 'XDocument' या पर अगर आप सिर्फ एक' .ToString() 'के लिए मिलता है' XElement' – Chris
एक नमूना इनपुट दस्तावेज़ तो हम जवाब का परीक्षण कर सकते दे। –