【发布时间】:2023-03-05 11:55:01
【问题描述】:
我在使用 XDocument.Load 时遇到问题,因为有时没有错误,有时已经出现错误,同样的错误“缺少根元素”我已经尝试使用 seek 和 position 仍然出现同样的错误。
有什么想法可以解决这个问题吗?谢谢
到目前为止,这是我的源代码:
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 长什么样子?
-
@L-Three,已更新,我认为 xml 没有问题,因为有时它不会出错。有时会出现同样的错误
-
为什么不使用 XDocument.Load(filePath) 代替?
-
@cheol.lui:实际上是示例 XML,还是只是一个彻底简化的版本?那个确切的文件是否以同样的方式失败?
-
@L-Three,我已经尝试过了,但它会说无法访问该文件,因为它正在被另一个进程使用
标签: c# stream linq-to-xml