को संरक्षित करने के लिए मैं एक दस्तावेज़ को दूसरे दस्तावेज़ में कनवर्ट करने की कोशिश कर रहा हूं, सीडीएटीए को बिल्कुल पहले दस्तावेज़ में छोड़कर, लेकिन मुझे पता नहीं चला कि कैसे एक्सएसएलटी के साथ सीडीएटीए को संरक्षित करने के लिए।एक्सएसएलटी के साथ एक्सएमएल ट्रांसफॉर्म करें और सीडीएटीए (रूबी में)
प्रारंभिक एक्सएमएल:
<node>
<subNode>
<![CDATA[ HI THERE ]]>
</subNode>
<subNode>
<![CDATA[ SOME TEXT ]]>
</subNode>
</node>
अंतिम एक्सएमएल:
<newDoc>
<data>
<text>
<![CDATA[ HI THERE ]]>
</text>
<text>
<![CDATA[ SOME TEXT ]]>
</text>
</data>
</newDoc>
मैं कुछ इस तरह की कोशिश की है, लेकिन कोई किस्मत, सब कुछ गड़बड़ हो जाता है:
<xsl:element name="subNode">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:element>
कोई भी विचार कैसे सीडीएटीए को संरक्षित करने के लिए?
धन्यवाद! लांस
का उपयोग गहरे लाल रंग का/nokogiri
अद्यतन: यहाँ कुछ है कि काम करता है।
<text disable-output-escaping="yes"><![CDATA[</text>
<value-of select="normalize-space(text())" disable-output-escaping="yes"/>
<text disable-output-escaping="yes">]]></text>
कि CDATA, जो मैं क्या जरूरत के लिए काम करता है के सभी पाठ() नोड्स लपेटो जाएगा, और यह पाठ के अंदर html टैग भी सुरक्षित रहेंगे।
क्या मुझे बस xslt, या उन पंक्तियों के साथ कुछ करने से पहले रूबी का उपयोग करना चाहिए और शायद नियमित रूप से अभिव्यक्ति करना चाहिए? आप और कैसे करेंगे? Cdata-section-elements काफी कटौती नहीं कर रहा है क्योंकि मैं चर और ऐसे का उपयोग कर रहा हूं। टिप के लिए धन्यवाद। –
यदि आपको बिल्कुल सीडीएटीए की आवश्यकता है, तो आपको एक्सएसएलटी के अलावा कुछ और देखना होगा। उस ने कहा, मैं इस कारण के लिए बहुत उत्सुक हूं कि आपको इसकी आवश्यकता क्यों है। एक्सडीएम टेक्स्ट और सीडीएटीए के बीच बहुत अच्छे कारण के लिए अंतर नहीं करता है - कोई भी एक्सएमएल-प्रोसेसिंग एप्लिकेशन कभी उनके लिए अलग-अलग अर्थशास्त्र नहीं देना चाहिए, इसलिए सीडीएटीए और कैरेक्टर-एस्केपिंग का उपयोग एक दूसरे के लिए किया जा सकता है। –
मैं फ्लैश में इस डेटा का उपयोग कर रहा हूं, और मैंने सुना है कि सीडीएटीए/सीडीएटीए के साथ बहुत सारी समस्याएं हैं। मैंने वास्तव में अभी तक कोशिश नहीं की है: पी –