I’m having the following code which is spitting ‘Root Element Missing’ during doc.Load().
MemoryStream stream = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(stream, Encoding.UTF8);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Root");
XmlDocument doc = new XmlDocument();
stream.Position = 0;
doc.Load(stream);
xmlWriter.Close();
I’m not able to figure out the issue. Any insights?
You haven’t flushed the
xmlWriter, so it may well not have written anything out yet. Also, you’re never completing the root element, so even if it has written outit won’t have written the closing tag. You’re trying to load it as a complete document.
I’m not sure at what point an XmlWriter actually writes out the starting part of an element anyway – don’t forget it may have attributes to write too. The most it could write out with the code you’ve got is
<Root.Here’s a complete program which works:
(Note that I’m not calling
WriteEndDocument– that only seems to be necessary if you still have open elements or attributes.)