0

MSXMl ライブラリを使用して xml を解析しています

put_text を呼び出してから get_xml を呼び出した後

出力には < & > が&lt;& に変換されます&gt;

どうすればこれを取り除くことができますか?

4

4 に答える 4

4

< と > はテキスト内で使用することは禁止されており、> と < としてエンコードする必要があります。これを回避する唯一の方法は、それらを含むテキストの CDATA セクションを作成することです。しかし、MS XML を使用して XMLT を読み取る場合は、その必要はありません。これらのシンボルは問題なくデコードされ、抽出されたテキストで < と > が完全に問題なく取得されます。

于 2009-06-18T08:09:10.213 に答える
3

さて、あなたはプレーンテキストから XML エンコードされたテキストに変換しています。
これは私が期待する動作です。

入力した元の文字列が必要な場合は、get_text() を使用してテキストに変換してみてください。

< と > をエンコードせずに put_text() でテキストをエンコードしたくない場合は、CData セクション内にある必要があります。

<![CDATA[    Text that can include < and > without encoding  ]]>
于 2009-06-18T08:18:58.960 に答える
0

あなたは取得しています&lt&lt;

有効なエンティティであるためには、末尾にセミコロンが必要です。

于 2009-06-18T08:11:30.660 に答える
0

テキストとして含めたい場合は、エスケープしても問題ありません。各 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)
于 2009-06-18T08:52:34.900 に答える