0

XmlWriterを使用してXmlDocumentを.Netに保存しています。ただし、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

4

1 に答える 1

1

Saveを呼び出す前に、 XmlDocument.PreserveWhitespaceプロパティを設定する必要があります。別のオプションは、要素のテキストコンテンツを正確に保持する必要がある内部テキストの代わりにCDataセクションを使用することです。

ドキュメントから:

LoadまたはLoadXmlが呼び出される前にPreserveWhitespaceがtrueの場合、空白ノードは保持されます。それ以外の場合、このプロパティがfalseの場合、重要な空白は保持されますが、空白は保持されません。

Saveが呼び出される前にPreserveWhitespaceがtrueの場合、ドキュメント内の空白は出力に保持されます。それ以外の場合、このプロパティがfalseの場合、XmlDocumentは出力を自動インデントします。

于 2010-08-04T05:02:17.333 に答える