簡體   English   中英

使用XDocument加載xml。從流中加載錯誤“缺少根元素”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM