System.Xml.XmlException: Unexpected end of file while parsing Name has occurred
c#, linq, linq-to-xml, xml, xmlreader
Solution
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.
Problem
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: - 2048 is a very suspicious number in computers. Am I running into a 2KB limit somewhere in `XDocument` or `XmlReader`? - My ktXmlReader.Read() in the while loop is somehow skipping all the other nodes and going straight to the EOF