1

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>
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 に答える