vb.net - parse an xml file without changing the encoding and preserving the file format -
मूल xml फाइल को UTF-8 बिना एओएम के साथ एन्कोड किया गया है
& lt;? Xml संस्करण = "1.0" एन्कोडिंग = "यूटीएफ -8"? & Gt; & LT; some_text & gt; & LT; ada / & gt; & LT; फ़ाइल / & gt; & Lt; title & gt; & lt; [CDATA []] & gt; & lt; / title & gt; & LT; कोड / & gt; & LT; parathrhseis / & gt; & Lt; / some_text & gt; मैं इस फ़ंक्शन में शीर्षक में पाठ सेट करने का प्रयास करता हूं:
मंद myXmlDocument के रूप में XmlDocument = New XmlDocument () मंद नोड जैसा कि XmlNode Dim as String s = "name.xml" यदि System.IO.File.Exists (s) = False फिर गलत असफल समाप्त करें यदि MyXmlDocument.Load (s) नोड = myXmlDocument.DocumentElement नोड में प्रत्येक नोड के लिए प्रयास करें। ChildNodes अगर नोड। नाम = "शीर्षक" तब नोड। प्रथम चावल। इनरटेक्स्ट = "टेक्स्ट" अंत के लिए बाहर निकलें यदि अगला myXmlDocument.Save (एस) अपवाद MsgBox के रूप में पकड़ें ("एक्सएमएलपीर्सिंग में त्रुटि:" + ई। संदेश) गलत असफल प्रयास करें यह सच है पाठ सही ढंग से लिखा गया है लेकिन यूओटीएम-बीओएम के साथ में एन्कोडिंग परिवर्तन भी है और यह भी है कि रिक्त स्थान जोड़ता है:
& lt;? Xml संस्करण = "1.0" एन्कोडिंग = "UTF-8"? & Gt; & LT; some_text & gt; & Lt; एडीए / & gt; & Lt; - यहां & lt; फ़ाइल / & gt; & Lt; - यहां & lt; शीर्षक & gt; & lt;! [CDATA [पाठ]] & gt; & lt; / title & gt; & Lt; code / & gt; & Lt; - यहां & lt; पैराथ्रीसिस / & gt; & Lt; - यहां & lt; / some_text & gt; मैं इन समस्याओं को कैसे हल कर सकता हूं
समाधान (ब्रैडली यूफरनर की मदद से)
मंद फ़ाइल रीडर स्ट्रिंग की कोशिश करें fileReader = My.Computer.FileSystem.ReadAllText ("original.xml") fileReader = fileReader.Replace ("& lt; एडीए / & gt;", "& lt; एडीए / & gt;") fileReader = fileReader.Replace ("& lt; file / & gt fileReader = fileReader.Replace ("& lt; code / & gt;", "& lt; कोड / & gt;") fileReader = fileReader.Replace ("& lt; parathrhseis / & gt;"; ("त्रुटि:" + पूर्व। मेसेज) रिटर्न अंत में कोशिश करें
यह वास्तव में फ़ाइल को पार्स करने में कोई समस्या नहीं है, यह सहेजने में समस्या है यह।
इस पोस्ट को बिना किसी बम के XML को कैसे सहेजना है यह देखें
संबंधित कोड है:
लेखक का प्रयोग = नया एक्सएमएलटीडवर्टर ("। \। File.xml", नया यूटीएफ 8 एन्कोडिंग (गलत) doc.Save (लेखक) अंत का उपयोग करना आमतौर पर आप । के माध्यम से दस्तावेज़ के स्वरूपण को नियंत्रित कर सकते हैं। XmlTextWriter की सेटिंग संपत्ति, लेकिन मुझे स्वयं की रिक्ति को नियंत्रित करने के लिए एक संपत्ति दिखाई नहीं देता समापन तत्व हो सकता है कि आपको फ़ाइल प्रसंस्करण को सहेजने से पहले उत्पादन को प्रसंस्करण के बाद बेहतर किस्मत मिलती है, इसे स्ट्रीम में सहेज कर और "/ & gt;" से पहले किसी भी स्थान को मैन्युअल रूप से निकालना होगा।
Comments
Post a Comment