हम एक HTML टेम्पलेट को पार्स, हेरफेर और विस्तारित करने के लिए जेएसओपी का उपयोग कर रहे हैं। अब तक सब कुछ जब तक यह एक HTML साथ संयोजन में उपयोग उद्धरण के लिए आता है ठीक काम करता है विशेषताओं काजेएसओपी एचटीएमएल विशेषताओं पर एकल उद्धरण से दोहरे उद्धरण में
<span data-attr='JSON'></span>
HTML स्निपेट
<span data-attr="JSON"></span>
जो भीतरी json डेटा जो वैध के रूप में निर्दिष्ट किया जाता है का उल्लंघन करेगा में बदल जाती है यही कारण है कि दोहरे उद्धरण चिह्नों के साथ ही
{"param" : "value"} //valid
{'param' : 'value'} //invalid
तो हम उन एकल उद्धरण नहीं बदलने के लिए Jsoup के लिए मजबूर करने की जरूरत है उद्धरण डबल करने के लिए, लेकिन कैसे? वर्तमान में यह हमारे कोड को पार्स करने और HTML सामग्री का उत्पादन करने के लिए है।
pageTemplate = Jsoup.parse(new File(mainTemplateFilePath), "UTF-8");
pageTemplate.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
pageTemplate.outputSettings().charset("UTF-8");
... adding some html
pageTemplate.html(); // will output the double quoted attributes :(
यह जसूप के कार्यान्वयन में एक बग हो सकता है। Http://jsoup.org/bugs – Vulcan
पर आप रिपोर्ट कर सकते हैं (या इससे भी बेहतर, डेवलपर्स के साथ चर्चा कर सकते हैं) मुझे यकीन नहीं है कि मैं समझता हूं कि यह समस्या क्या है। क्या आप अपने अंतिम आउटपुट का एक उदाहरण प्रदान कर सकते हैं, और आउटपुट का एक उदाहरण जिसके बजाय आप चाहते हैं? क्या आप कह रहे हैं कि आप < 'के साथ समाप्त हो रहे हैं। '> '? यदि हां, तो आप < 'की अपेक्षा क्यों नहीं करते? –
" मान्य जेसन नहीं है, तो मैं इसके साथ क्या करूँगा, या क्या मैं गलत हूं? और हाँ प्रसंस्करण से पहले टेम्पलेट 'डेटा-attr =' 'है और Jsoup की मदद से मैं एकल उद्धरण के बीच जेसन जोड़ रहा हूं। लेकिन एक बार परिणामस्वरूप टेम्पलेट को प्रतिपादित करने और सहेजने के बाद मुझे 'डेटा-एटीआर = "{" डेटा ":" वैल्यू "}" 'मिलता है, लेकिन मुझे उम्मीद है कि' डेटा-एटीआर = '{" डेटा ":" वैल्यू "}'' – MatthiasLaug