テキスト内の「&」はエスケープされ&
、XmlTextWriter を使用して xml ファイルを作成するときに変換されますが、変換を行わないようにする方法を教えてください。
xmltextwriter の WriteRaw 関数を使用する以外に方法はありますか?
テキスト内の「&」はエスケープされ&
、XmlTextWriter を使用して xml ファイルを作成するときに変換されますが、変換を行わないようにする方法を教えてください。
xmltextwriter の WriteRaw 関数を使用する以外に方法はありますか?
エスケープされていないアンパサンドを XML に入れると、有効な XML ではなくなります。
あなたの2つの選択肢は、それをエスケープすることです(ライブラリが行っています):
<tag>One & another</tag>
または、CDATA でラップします。
<tag><![CDATA[One & another]]></tag>
これは次の方法で実行できます。
xmlWriter.WriteCData("One & another");
どうしてそうなってほしくないのですか?ライブラリが XML で必要な正しい文字エスケープを強制しているように見えます。
それが機能するかどうかはわかりませんが、xmltextwriter.Settings から利用できる XmlWriterSettings プロパティ、特に CheckCharacters プロパティを確認することをお勧めします。
一方、Brian Agnew が述べたように、& を & にエンコードしないことは、XML を無効にするため、間違った方法である可能性があります (既に & にエンコードしている場合を除きます。その場合、渡す前にデコードする必要があるかもしれません)。 xmltextwriter クラスに。