我正在使用XmlReader
检索SqlCommand.ExecuteXmlReader
。
当我运行这行代码时:
XDocument currentXDoc = XDocument.Load(ktXmlReader.ReadSubtree());
它第一次工作,按预期读取第一个Product节点。
第二次运行时,我得到以下异常:
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)
我确实找到了与我类似的this question和this question,但我很确定我的XML格式正确(我可以直接从运行程序中获取它)
到目前为止我的想法:
XDocument
或XmlReader
?答案 0 :(得分:5)
答案 1 :(得分:0)
XmlReader执行是单向操作。您可以尝试重置它的位置,或者更容易 - create a new reader from existing document。