5

テキスト内の「&」はエスケープされ&、XmlTextWriter を使用して xml ファイルを作成するときに変換されますが、変換を行わないようにする方法を教えてください。

xmltextwriter の WriteRaw 関数を使用する以外に方法はありますか?

4

3 に答える 3

9

エスケープされていないアンパサンドを XML に入れると、有効な XML ではなくなります。

あなたの2つの選択肢は、それをエスケープすることです(ライブラリが行っています):

<tag>One &amp; another</tag>

または、CDATA でラップします。

<tag><![CDATA[One & another]]></tag>

これは次の方法で実行できます。

xmlWriter.WriteCData("One & another");
于 2010-02-01T13:19:38.800 に答える
0

どうしてそうなってほしくないのですか?ライブラリが XML で必要な正しい文字エスケープを強制しているように見えます。

于 2010-02-01T13:16:17.223 に答える
0

それが機能するかどうかはわかりませんが、xmltextwriter.Settings から利用できる XmlWriterSettings プロパティ、特に CheckCharacters プロパティを確認することをお勧めします。

一方、Brian Agnew が述べたように、& を & にエンコードしないことは、XML を無効にするため、間違った方法である可能性があります (既に & にエンコードしている場合を除きます。その場合、渡す前にデコードする必要があるかもしれません)。 xmltextwriter クラスに。

于 2010-02-01T13:23:39.703 に答える