I just came across with a problem using XmlDocument.LoadXml
.
The application was crashing, giving the following error:
"Data at the root level is invalid. Line 1, position 1"
After inspecting the XML and finding nothing wrong with it, I googled a bit and found a tip to use XmlDocument.Load
instead of XmlDocument.LoadXml
.
I have tried it and it works perfectly.
My question is: What is the difference between the 2 methods and what could have cause one to work and the other to fail?
LoadXml(XmlElement) Populates an XMLNode control with data from an XmlElement. LoadXml(XmlDocument) Populates an XMLNode control with data from the root node of the specified XmlDocument.
XmlDocument is very easy to use. Its only real drawback is that it loads the whole XML document into memory to process. Its seductively simple to use. XmlReader is a stream based reader so will keep your process memory utilization generally flatter but is more difficult to use.
XDocument is from the LINQ to XML API, and XmlDocument is the standard DOM-style API for XML. If you know DOM well, and don't want to learn LINQ to XML, go with XmlDocument . If you're new to both, check out this page that compares the two, and pick which one you like the looks of better.
LoadXml(String) Method.
XmlDocument.Load is used to load XML either from a stream, TextReader, path/URL, or XmlReader. XmlDocument.LoadXml is used to load the XML contained within a string.
They're fundamentally different ways of loading XML, depending on where the XML is actually stored. So it sounds like you were using the wrong method for where your XML is.
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