java - How can I print single quotes around attribute values instead of double quotes with the javax.xml.transform.Tansformer class? -
मेरे पास निम्न फ़ंक्शन हैं:
निजी स्थिर शून्य सुंदर प्रिंट (दस्तावेज़ डॉक्टर, फ़ाइल destfile ) {ट्रांसफार्मरफिटर tfactory = ट्रांसफार्मरफैक्चर। न्यू ईन्स्टेंस (); ट्रांसफॉर्मर धारावाहिक; कोशिश {if (! DestFile.getParentFile ()। मौजूद है ()) {destFile.getParentFile ()। Mkdirs (); } सीरियलइज़र = टीएफटीसी। एनईयू ट्रान्सफ़ॉर्मर (); Serializer.setOutputProperty (आउटपुटकिसे। इंडेंट, "हाँ"); Serializer.setOutputProperty (आउटपुटकिज़। एनकोडिंग, "यूटीएफ -8"); {Serializer.transform (नई DOMSource (doc), नई स्ट्रीम रीजल्ट (नई FileOutputStream (destFile)) का प्रयास करें; } पकड़ (FileNotFoundException ई) {e.printStackTrace (); }} पकड़ (ट्रांसफार्मर एक्सपेशेशन ई) {e.printStackTrace (); }}
मैं इसका इस्तेमाल अपने एक्सएमएल "सुंदर प्रिंट" करने के लिए करता हूं हालांकि, यह उन गुणों के मूल्यों को उनके चारों ओर दोहरे उद्धरणों के साथ प्रिंट करता है, क्योंकि एकल उद्धरणों के विपरीत। अब, मुझे एहसास है कि एक्सएमएल मूल्यों के लिए डबल बनाम एकल उद्धरणों के बारे में अज्ञेयवादी है, लेकिन जो ग्राहक मैं XML को प्रदान कर रहा हूं वह एकल उद्धरणों की आवश्यकता है।
इसलिए, कहा जा रहा है, किसी व्यक्ति को आउटपुट संपत्ति का पता मैं ट्रांसफार्मर को डबल कोट्स के बजाय एकल उद्धरण मुद्रित करने के लिए कह सकता हूं?
आपकी मदद के लिए धन्यवाद,
मुझे विश्वास नहीं है कि यह मानक सीरियललाइज़र के साथ संभव है। किसी भी मानक-अनुपालन XML पार्सर को इनपुट पर दोहरे उद्धरणों को संभालना चाहिए। क्या आप यह जान सकते हैं कि ग्राहक के एक्सएमएल पार्सिंग को क्यों तोड़ा गया है और संभवतः इसे तय किया जा सकता है?
एक अन्य बिंदु पर, आप अपनी आउटपुट कुंजियों में घोषित कर रहे हैं कि दस्तावेज़ यूटीएफ 8 होगा, लेकिन आप ऐसा नहीं लगता एक यूटीएफ 8-एन्कोडेड लेखक प्रदान करना यह विंडोज पर ठीक काम करेगा, लेकिन सोलारिस पर विफल होगा, जहां डिफ़ॉल्ट नहीं है UTF8 अधिकतम पोर्टेबिलिटी के लिए आपको यह सुनिश्चित करना चाहिए कि आपका आउटपुट स्ट्रीम वास्तव में जावा को स्पष्ट रूप से यूटीएफ 8 के जरिए लिखेगा। बस इसे XML शीर्षलेख में घोषित करना पर्याप्त नहीं है।
Comments
Post a Comment