आपको अपने डीटीडी में एक इकाई घोषित करने की आवश्यकता नहीं है, या एक डीटीडी का उपयोग करें। आपको शायद चरित्र के यूनिकोड प्रतिनिधित्व का उपयोग करने की आवश्यकता नहीं है। आप निश्चित रूप से को सीडीएटीए अनुभाग का उपयोग करने की आवश्यकता नहीं है।
आपको स्ट्रिंग मैनिपुलेशन के साथ इसे बनाने की कोशिश करने के बजाय अपने एक्सएमएल बनाने के लिए एक डोम का उपयोग करना है। डीओएम आपके लिए इस समस्या को ठीक करेगा।
सी # में, इस कोड:
XmlDocument d = new XmlDocument();
d.LoadXml("<foo/>");
char c = (char)187;
d.DocumentElement.InnerText = "Here's that character: " + c;
Debug.WriteLine(d.OuterXml);
d.DocumentElement.InnerText = "Here it is as an HTML entity: »";
Debug.WriteLine(d.OuterXml);
इस उत्पादन का उत्पादन:
<foo>Here's that character: »</foo>
<foo>Here it is as an HTML entity: &raquo;</foo>
आप पहली बार उदाहरण से देख सकते हैं, » चरित्र एक्सएमएल पाठ में पूरी तरह से कानूनी है। लेकिन मुझे नहीं लगता कि आप उस चरित्र का प्रतिनिधित्व करने की कोशिश कर रहे हैं।
मुझे लगता है कि आप रिपोर्ट किए गए त्रुटि संदेश के आधार पर दूसरे उदाहरण में क्या करने की कोशिश कर रहे हैं। आप वर्णों की स्ट्रिंग का प्रतिनिधित्व करने की कोशिश कर रहे हैं »
। एक्सएमएल टेक्स्ट में वर्णों की स्ट्रिंग का प्रतिनिधित्व करने का सही तरीका एम्पर्सेंड से बचकर है; इस प्रकार: &raquo;
।
तो यदि आप अपने एक्सएमएल बनाने के लिए स्ट्रिंग मैनिपुलेशन का उपयोग करना चाहिए, तो बस सुनिश्चित करें कि आप अपने स्रोत डेटा में किसी भी एम्पर्सेंड से बचें। बिंदु को कम करने के लिए नहीं, लेकिन यदि आप एक डोम का उपयोग कर रहे थे, तो यह आपके लिए स्वचालित रूप से किया जाएगा।
एक और बात। यह काफी संभावना है कि आपके मूल प्रश्न में, जो अब "मैं उपयोग कर रहा हूं" पढ़ता हूं, जो वास्तव में टाइप किया गया है "मैं & raquo का उपयोग कर रहा हूं;"। वास्तविक पोस्ट ऐसा नहीं दिखता है, यद्यपि। यदि आपको मार्कडाउन में शाब्दिक रूप से पाठ का प्रतिनिधित्व करने की आवश्यकता है, तो इसे बैकटिक्स में संलग्न करें; अन्यथा, जब पोस्ट प्रस्तुत किया जाता है तो HTML इकाइयां उनके चरित्र प्रतिनिधित्व में परिवर्तित हो जाएंगी।
स्रोत
2008-10-16 19:56:17
मैं के रूप में यह परिभाषित करने कर रहा हूँ »। डबल चेक किया गया और नहीं मैंने नहीं किया; जब मैंने यहां चिपकाया तो अर्धविराम सिर्फ मिस गया। – BillZ