System.Xml.XmlWriterを使用してXML要素にInnerTextプロパティを書き込む際にキャリッジリターンを避けます
質問
私は、.NETでXmlDocumentオブジェクトを保存するためのXmlWriterを使用しています。しかし、InnerTextプロパティを持つすべての要素は、周囲のキャリッジリターン文字で書かれています。
私は、それらの文字の書き込みを避けるためにXmlWriterSettingsを使用してみましたが、まだ運ます。
ここでは、使用されるコードの一部である
XmlDocument outXml = new XmlDocument();
outXml.AppendChild .......
XmlWriterSettings sets = new XmlWriterSettings();
sets.Encoding = encoding;
sets.Indent = true;
XmlWriter xwriter = XmlWriter.Create(file, sets);
outXml.Save(xwriter);
xwriter.Close();
XML出力は次のようです
<String Id="msierrXmlFileFailedSave" Overridable="yes">
Fehler beim Speichern der Einstellungen-Datei.
</String>
必要なXML出力は次のようにする必要があります
<String Id="msierrXmlFileFailedSave" Overridable="yes">Fehler beim Speichern der Einstellungen-Datei.</String>
要素の中にあるものをキャリッジリターンの書き込みを回避する方法はありますか?
PD:私はこの問題について逆質問を見ましたが、解決策はありませんこの場合には適用されません。
事前に感謝します。
Allan.c
解決
あなたは XmlDocument.PreserveWhitespaceを設定することになるでしょう[保存]を呼び出す前にのプロパティ。別のオプションではなく、要素のテキストの内容を正確に保存する必要が内部テキストのCDATAセクションを使用することです。
ドキュメントから:
のPreserveWhitespaceは前に真の場合 負荷またはLoadXmlと呼ばれ、ホワイトスペース ノードが保持されます。それ以外の場合は、もし このプロパティは、重要な虚偽であります ホワイトスペースに保存され、ホワイトスペース ありません。
のPreserveWhitespaceは前に真の場合 保存はで、ホワイトスペースと呼ばれています 文書が出力に保存されます。 そうでない場合は、このプロパティがfalseの場合、 XmlDocumentの自動インデント出力ます。
所属していません StackOverflow