使用XDocument加载xml.加载错误“缺少根元素”;从流

本文关键字:加载 缺少根元素 元素 从流 xml XDocument 错误 使用 | 更新日期: 2023-09-27 18:06:08

我在使用XDocument时遇到问题。加载,因为有时没有错误,有时已经有错误,同样的错误"根元素丢失",我已经尝试使用查找和定位仍然发生相同的错误。

有什么办法可以解决这个问题吗?由于

这是我到目前为止的源代码:

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>

使用XDocument加载xml.加载错误“缺少根元素”;从流

我猜您的示例过于简化了,您的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>