I'm using an XmlReader
retrieved using SqlCommand.ExecuteXmlReader
.
Here is my input
When I run this line of code:
XDocument currentXDoc = XDocument.Load(ktXmlReader.ReadSubtree());
it works the first time, reading in the first Product node as expected.
The second time it runs, I get the following exception:
System.Xml.XmlException:
Message: Unexpected end of file while parsing Name has occurred. Line 1, position 2048.
Stacktrace: at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
at System.Xml.XmlTextReaderImpl.ParseQName(Boolean isQName, Int32 startOffset, Int32& colonPos)
at System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
at System.Xml.XmlTextReaderImpl.ParseEndElement()
at System.Xml.XmlTextReaderImpl.ParseElementContent()
at System.Xml.XmlSubtreeReader.Read()
at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
I did find this question and this question that were similar to mine, but I'm fairly sure my XML is well-formed (I can get it directly from running a sproc)
My ideas so far:
XDocument
or XmlReader
?I found the answer here.
My problem was that I was closing the SqlConnection with a using statement when I was getting the XmlReader.
I added the connection to my "using tower of power" and passed it as a parameter, keeping it open, and everything worked perfectly.
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