0

我正在使用 XmlWriter 在.Net 中保存一个 XmlDocument。但是,所有具有 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:我看到一个关于这个问题的相反问题,但解决方案不适用于这个案例。

提前致谢。

艾伦.c

4

1 回答 1

1

您需要在调用 Save 之前设置XmlDocument.PreserveWhitespace属性。另一种选择是使用 CData 部分而不是内部文本,其中需要准确保留元素的文本内容。

从文档中:

如果在调用 Load 或 LoadXml 之前 PreserveWhitespace 为真,则保留空白节点;否则,如果此属性为假,则保留重要的空白,而不保留空白。

如果在调用 Save 之前 PreserveWhitespace 为真,则文档中的空白将保留在输出中;否则,如果此属性为 false,则 XmlDocument 自动缩进输出。

于 2010-08-04T05:02:17.333 回答