MSXMl ライブラリを使用して xml を解析しています
put_text を呼び出してから get_xml を呼び出した後
出力には < & > が<& に変換されます>
どうすればこれを取り除くことができますか?
< と > はテキスト内で使用することは禁止されており、> と < としてエンコードする必要があります。これを回避する唯一の方法は、それらを含むテキストの CDATA セクションを作成することです。しかし、MS XML を使用して XMLT を読み取る場合は、その必要はありません。これらのシンボルは問題なくデコードされ、抽出されたテキストで < と > が完全に問題なく取得されます。
さて、あなたはプレーンテキストから XML エンコードされたテキストに変換しています。
これは私が期待する動作です。
入力した元の文字列が必要な場合は、get_text() を使用してテキストに変換してみてください。
< と > をエンコードせずに put_text() でテキストをエンコードしたくない場合は、CData セクション内にある必要があります。
<![CDATA[ Text that can include < and > without encoding ]]>
あなたは取得しています<か<?
有効なエンティティであるためには、末尾にセミコロンが必要です。
テキストとして含めたい場合は、エスケープしても問題ありません。各 xml パーサーはテキストを逆エスケープします。
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)