Подтвердить что ты не робот

Есть ли способ сохранить XmlDocument * без * отступов и строк?

Возможный дубликат:
Как удалить пробелы из XmlDocument

Все мои поиски вызвали людей, задающих обратное, но у меня есть файл, который растет почти на 50%, если он сохраняется с возвратом строки и отступом.

Есть ли способ обойти это?

EDIT Я не говорю об открытии файла, но сохраняю его. Этот код воспроизводит "ошибку" для меня:

var path = @"C:\test.xml";
System.IO.File.WriteAllText(path, "<root>\r\n\t<line></line>\r\n\t<line></line>\r\n</root>");
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.PreserveWhitespace = false;
doc.Load(path);
doc.PreserveWhitespace = false; //just in case!
doc.Save(path);

Точка останова в середине показывает, что doc.InnerXml эффективно <root><line></line><line></line></root>, как и ожидалось. Но содержимое test.xml в конце:

<root>
  <line>
  </line>
  <line>
  </line>
</root>
4b9b3361

Ответ 1

Попробуйте этот код:

XmlDocument doc = new XmlDocument();

using(XmlTextWriter wr = new XmlTextWriter(fileName, Encoding.UTF8))
{
    wr.Formatting = Formatting.None; // here the trick !
    doc.Save(wr);
}

Ответ 2

Используйте XmlWriterSettings:

XmlDocument xmlDoc = new XmlDocument();
[...]
XmlWriterSettings xwsSettings = new XmlWriterSettings();
xwsSettings.Indent = false;
xwsSettings.NewLineChars = String.Empty;
using (XmlWriter xwWriter = XmlWriter.Create(@"c:\test.xml", xwsSettings))
 xmlDoc.Save(xwWriter);