से सहेजने से कैसे रोकें मैं अपने XML दस्तावेज़ों में से किसी एक के भीतर एक बच्चे नोड में जोड़ने के लिए simpleXML का उपयोग कर रहा हूं ... जब मैं अपने simpleXML ऑब्जेक्ट पर print_r करता हूं, तो <
अभी भी एक के रूप में प्रदर्शित किया जा रहा है दृश्य स्रोत में <
। हालांकि, मैं इस वस्तु वापस DOMDocument का उपयोग कर एक्सएमएल को सहेजने के बाद, <
<
में बदल जाती है और >
>
DOMDocument को <as & lt
कैसे इस व्यवहार को बदलने के लिए पर कोई भी विचार में बदल जाती है? मैंने dom->substituteEntities = false;
जोड़ने का प्रयास किया है, लेकिन यह अच्छा नहीं था।
//Convert SimpleXML element to DOM and save
$dom = new DOMDocument('1.0');
$dom->preserveWhiteSpace = false;
$dom->formatOutput = false;
$dom->substituteEntities = false;
$dom->loadXML($xml->asXML());
$dom->save($filename);
यहाँ है जहाँ मैं उपयोग कर रहा हूँ <:
$new_hint = '<![CDATA[' . $value[0] . ']]>';
$PrintQuestion->content->multichoice->feedback->hint->Passage->Paragraph->addChild('TextFragment', $new_hint);
समस्या नहीं, मैं सरल XML का उपयोग कर रहा XML दस्तावेज में कुछ नोड्स के माध्यम से पुनरावृति करने के लिए, और अगर एक विशेषता एक मेल खाता है दी गई आईडी, सीडीएटीए के साथ एक विशिष्ट बाल नोड जोड़ा जाता है। फिर सभी प्रक्रियाओं के बाद, मैं XML को वापस DOMDocument का उपयोग करके फ़ाइल में सहेजता हूं, जहां < को & लेफ्टिनेंट आदि में परिवर्तित किया जाता है।
यहां मेरी पूरी कक्षा फ़ाइल का एक लिंक है, ताकि आप एक बेहतर विचार प्राप्त कर सकें मैं क्या हासिल करने की कोशिश कर रहा हूँ। विशेष रूप से नीचे hint_insert() विधि का संदर्भ लें।
'<' बस एक XML तत्व के भीतर एक कानूनी चरित्र (जब तक आप एक CDATA अनुभाग में हैं) नहीं है। आप क्या खत्म करने की कोशिश कर रहे हैं? – MvanGeest
मैं एक सीडीएटीए टैग जोड़ने को पूरा करने की कोशिश कर रहा हूं ... अपडेट कोड के लिए मूल पोस्ट की जांच करें – ThinkingInBits
वोट के लिए धन्यवाद! जब आप नोड के भीतर '<' and '>' रखते हैं तो सीडीएटीए टैग आवश्यक है (जब तक आप बचें) xml में! एक्सएचटीएमएल के समान ... – xandercoded