All my searches have brought up people asking the opposite, but I have a file which grows by nearly 50% if it is saved with line returns and indentation.
Is there any way round this?
EDIT I'm not talking about opening a file, but saving one. This code reproduces the 'bug' for me:
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);
A breakpoint in the middle shows that doc.InnerXml is effectively <root><line></line><line></line></root>
, as expected. But the contents of test.xml
at the end is:
<root>
<line>
</line>
<line>
</line>
</root>
Try this code:
XmlDocument doc = new XmlDocument();
using(XmlTextWriter wr = new XmlTextWriter(fileName, Encoding.UTF8))
{
wr.Formatting = Formatting.None; // here's the trick !
doc.Save(wr);
}