.NET का XmlTextWriter
अमान्य xml फ़ाइलों को बनाता है।XmlTextWriter गलत तरीके से नियंत्रण वर्ण लिख रहा है
एक्सएमएल में, कुछ नियंत्रण वर्णों को 'क्षैतिज टैब' (	
) की अनुमति है, लेकिन अन्य 'लंबवत टैब' (
) की तरह नहीं हैं। (spec देखें।)
मेरे पास एक स्ट्रिंग है जिसमें एक यूटीएफ -8 नियंत्रण चरित्र है जिसे एक्सएमएल में अनुमति नहीं है।
हालांकि XmlTextWriter
चरित्र से बच निकलता है, परिणामी एक्सएमएल अभी भी अमान्य है।
मैं कैसे सुनिश्चित कर सकता हूं कि XmlTextWriter
कभी भी अवैध XML फ़ाइल नहीं बनाता है?
या, यदि XmlTextWriter
के साथ ऐसा करना संभव नहीं है, तो मैं विशिष्ट नियंत्रण वर्णों को कैसे स्ट्रिप कर सकता हूं जिन्हें XML में स्ट्रिंग से अनुमति नहीं है?
उदाहरण कोड:
using (XmlTextWriter writer =
new XmlTextWriter("test.xml", Encoding.UTF8))
{
writer.WriteStartDocument();
writer.WriteStartElement("Test");
writer.WriteValue("hello \xb world");
writer.WriteEndElement();
writer.WriteEndDocument();
}
आउटपुट:
<?xml version="1.0" encoding="utf-8"?><Test>hello  world</Test>
आपके पास XML में एक बच निकला लंबवत टैब नहीं हो सकता है? क्या आप मानक का संदर्भ दे सकते हैं? – Jodrell
@ जोडरेल यह सही है, आप नहीं कर सकते। एक्सएमएल पाठ के लिए है, न कि नियंत्रण वर्णों या बाइनरी डेटा के लिए। http://www.w3.org/TR/REC-xml/#charsets – jasso