[英]Load xml using XDocument.Load error “root element is missing” from stream
我在使用XDocument.Load时遇到问题,因为有时没有错误,有时已经存在错误,相同的错误“缺少根元素”,我已经尝试过使用搜寻和位置,但仍然发生相同的错误。
有什么想法可以解决此问题吗? 谢谢
到目前为止,这是我的源代码:
using (var stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
stream.Seek(0, System.IO.SeekOrigin.Begin);
//stream.Position = 0;
var request = XDocument.Load(stream);
var get_command = from r in request.Descendants("Transaction")
select new
{
Type = r.Element("Type").Value
};
foreach (var c in get_command)
{
type = c.Type;
}
}
样本XML
<?xml version="1.0" encoding="utf-8"?>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
我的猜测是您的示例过于简化,而您的Xml看起来更像这样
<?xml version="1.0" encoding="utf-8"?>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
那将解释您的错误,因为没有根元素。 你需要像这样
<?xml version="1.0" encoding="utf-8"?>
<Requests>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
</Requests>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.