1

我在使用 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>
4

1 回答 1

2

我的猜测是您的示例过于简化,您的 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>
于 2013-04-10T14:07:38.600 回答