I'm loading a XML Document that has some tags that have no innertext.
If I populate the innertext with some data then it works as needed (you get opening tag, innertext and closing tag all on one line) like the following...
<root>
<element>value</element>
</root>
The problem arises with tags with no values. These SHOULD be displayed in the same way as above with the exception of no value of coarse, like the following...
<root>
<element></element>
</root>
However, when the innertext has an empty string it adds a carriage return & line feed which is not what is expected! It ends up looking like the following...
<root>
<element>
</element>
</root>
This is my current code that yields the above results...
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\test.xml");
//Save the xml and then cleanup
xmlDoc.Save(@"C:\test.xml");
This fixed it for me...
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\test.xml");
//Save the xml and then cleanup
XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
XmlWriter writer = XmlWriter.Create(@"C:\test.xml", settings);
xmlDoc.Save(writer);
You control that through the XMLWriter within the Settings Property.
Check out this example along with the following references. http://msdn.microsoft.com/en-us/library/ms162618.aspx
Refernces http://msdn.microsoft.com/en-us/library/system.xml.xmlwriter.aspx http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.aspx http://msdn.microsoft.com/en-us/library/system.xml.xmlwritersettings.newlinehandling.aspx
Probably too late, but I referred to the solution given by Arvo Bowen. Arvo's solution is in C#, I wrote the same in Powershell Syntax
# $dest_file is the path to the destination file
$xml_dest = [XML] (Get-Content $dest_file)
#
# Operations done on $xml_dest
#
$settings = new-object System.Xml.XmlWriterSettings
$settings.CloseOutput = $true
$settings.Indent = $true
$writer = [System.Xml.XmlWriter]::Create($dest_file, $settings)
$xml_dest.Save($writer)
$writer.Close()
It solved my two problems:
<tag1>$null</tag1>
would actually be written in file as <tag />
Refer this thread:
Can we force XmlWriter to issue <my-tag></my-tag> rather than <my-tag/>?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With