2010-08-04 3 views
0

Я использую XmlWriter для сохранения XmlDocument в .Net. Однако все элементы, содержащие InnerText, пишутся с символами возврата к карете.Избегайте возврата каретки при записи InnerText в xml-элементах с помощью System.Xml.XmlWriter

Я пробовал использовать 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: Я видел opposite question об этой проблеме, но решение не распространяется на этот случай.

Заранее спасибо.

Allan.c

+0

возможно дубликат [XMLDocument.Save добавляет возврата каретки в XML, когда элементы являются пустыми] (http://stackoverflow.com/questions/19258810/xmldocument-save-adds-return-carriages-to-xml-when -elements-are-blank) – Alex

ответ

1

Вы хотите установить XmlDocument.PreserveWhitespace свойство перед вызовом Сохранить. Другой вариант - использовать разделы CData вместо внутреннего текста, где текстовое содержимое элементов должно быть точно сохранено.

Из документации:

Если PreserveWhitespace правда, прежде чем нагрузки или LoadXml называется, белого пространства узлы сохраняются; в противном случае, если это свойство является ложным, значительное пробел сохраняется, пробел нет.

Если PreserveWhitespace имеет значение true до Сохранение сохраняется, в документе сохраняется сохранение в документе; в противном случае, если это свойство является ложным, XmlDocument автоматически сжимает вывод.

+0

Отлично, он исправил проблему. –