xml - एक्सएमएल में डबल कोट चरित्र से बचें




escaping (6)

क्या एक्सएमएल में डबल कोट के लिए कोई बच निकला चरित्र है? मैं एक टैग लिखना चाहता हूं जैसे:

<parameter name="Quote = " ">

लेकिन अगर मैं डालता हूं, तो इसका मतलब है कि स्ट्रिंग समाप्त हो गई है। मुझे ऐसा कुछ चाहिए (सी ++):

printf("Quote = \" ");

क्या इससे बचने के लिए डबल कोट से पहले लिखने के लिए कोई चरित्र है?


आप बैकस्लैश का उपयोग करके "यू" और फिर चरित्र के लिए यूनिकोड मान का उपयोग कर सकते हैं, उदाहरण के लिए डबल कोट का यूनिकोड मान है

"-> यू +0022

इसलिए यदि आप इसे एंड्रॉइड में एक्सएमएल में टेक्स्ट के हिस्से के रूप में सेट कर रहे थे तो यह ऐसा कुछ दिखाई देगा,

<TextView
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:text=" \u0022 Showing double quotes \u0022 "/>

यह टेक्स्टव्यू में लगभग एक ऐसा पाठ प्रस्तुत करेगा

"डबल कोट्स दिखा रहा है"

आप यूनिकोड-table.com/en पर सबसे अधिक प्रतीकों और पात्रों का यूनिकोड पा सकते हैं


इस तरह कोई बचने वाला चरित्र नहीं है, इसके बजाय आप &quot; या यहां तक ​​कि <![CDATA["]]> " चरित्र का प्रतिनिधित्व करने के लिए।


दूसरों ने इस मामले में विशिष्ट भागने को संभालने के तरीके के बारे में जवाब दिया है।

एक व्यापक जवाब यह स्वयं करने की कोशिश नहीं करना है। एक एक्सएमएल एपीआई का प्रयोग करें - अस्तित्व में बस हर आधुनिक प्रोग्रामिंग मंच के लिए बहुत सारे उपलब्ध हैं।

एक्सएमएल एपीआई आपके लिए इस तरह की चीज़ों को स्वचालित रूप से संभाल लेंगे, जिससे गलत होने में बहुत मुश्किल हो जाएगी। जब तक आप स्वयं एक एक्सएमएल एपीआई लिख रहे हों, आपको शायद इस तरह के विवरणों के बारे में चिंता करने की ज़रूरत नहीं है।


यदि आपको बस कुछ जल्दी करने की कोशिश करनी है, तो यहां एक त्वरित और गंदा समाधान है। विशेषता मान के लिए एकल उद्धरण का उपयोग करें:

<parameter name='Quote = " '>

सी ++ में आप एस्केपएक्सएमएल एटीएल एपीआई का उपयोग कर सकते हैं। यह विशेष वर्णों को संभालने का सही तरीका है ...


पुराने, अक्सर पूछे जाने वाले प्रश्न के नए, बेहतर उत्तर ...

एक्सएमएल में डबल कोट से बचने के लिए कब

डबल कोट ( " ) भागने के बिना प्रकट हो सकता है:

  • एक्सएमएल पाठ सामग्री में:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
    
  • एक्सएमएल विशेषताओं में सिंगल कोट्स ( ' ) द्वारा सीमित:

    <NoEscapeNeeded name='Pete "Maverick" Mitchell'/>
    

    नोट: सिंगल कोट्स ( ' ) पर स्विच करने के लिए भी कोई भागने की आवश्यकता नहीं है:

    <NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>
    

डबल कोट ( " ) से बच जाना चाहिए :

  • एक्सएमएल विशेषताओं में डबल कोट्स द्वारा सीमित:

    <EscapeNeeded name="Pete &quot;Maverick&quot; Mitchell"/>
    

जमीनी स्तर

डबल कोट ( " ) को बहुत ही सीमित संदर्भों में एक्सएमएल में &quot; बच जाना चाहिए।





escaping