<&> يتم تحويلها إلى & gt ؛ & lt ؛ إلخ
سؤال
أنا أستخدم مكتبة MSXML لتحليل XML
بعد أن أتصل ب put_text ثم get_xml
سيتم تحويل الإخراج إلى <&> <
& >
كيف يمكنني التخلص من هذا؟
المحلول
<و> محظور استخدام داخل النص ويحتاج إلى ترميزه على أنه> و <. الطريقة الوحيدة لتجنب ذلك هي إنشاء قسم CDATA للنص الذي يحتوي على ذلك. لكنك لا تحتاج حقًا إلى إذا كنت تنوي قراءة XMLT باستخدام MS XML - فستكشف هذه الرموز على ما يرام وستحصل على <و> على ما يرام في النص المستخرج.
نصائح أخرى
حسنًا ، أنت تتحول من نص عادي إلى نص مشفر XML.
هذا هو السلوك الذي أتوقعه.
إذا كنت تريد السلسلة الأصلية التي وضعتها في محاولة تحويل مرة أخرى إلى نص باستخدام get_text ().
إذا كنت لا تريد أن يقوم Put_text () بتشفير النص دون ترميز <و> ، فيجب أن يكون داخل قسم CDATA.
<![CDATA[ Text that can include < and > without encoding ]]>
هل تأخذ <
أو <
?
يجب أن يكون هناك نصف كولون في النهاية ليكون كيانًا صالحًا.
إذا كنت تريد أن يتم تضمينها كنص ، فمن الجيد أن نهرب. كل XML Pareser سوف يعود الهروب من النص.
إذا كنت تريد ذلك كعناصر XML ، فلن تتمكن من إنشائها باستخدام put_text ولكن تحتاج إلى إنشاء الشجرة بهذه الطريقة
dataNode=xmlDoc.createElement("data")
idNode=xmlDoc.createElement("id")
textNode=xmlDoc.createTextNode("17")
idNode.appendChild(textNode)
nameNode=xmlDoc.createElement("name")
textNode=xmlDoc.createTextNode("Uday")
nameNode.appendChild(textNode)
...
dataNode.appendChild(idNode)
dataNode.appendChild(nameNode)
...
parentNode.appendChild(dataNode)
ما قد يبدو أفضل إذا نظرت مع العين وتريد كتابة النص على الملف الذي يمكنك استخدامه في قسم CDATA.
newCDATA=xmlDoc.createCDATASection("<data><id>17</id>...</data>")
parentNode.appendChild(newCDATA)