0

このクエリが機能しない理由がわかりません。

Assert.IsTrue(File.Exists(file));
XDocument doc = XDocument.Load(file);
var res = from o in doc.Descendants("Counters")
          select new 
          {
              Total = (string)o.Attribute("total"),
              Executed = (string)o.Attribute("executed"),
              Passed = (string)o.Attribute("passed"),
              Failed = (string)o.Attribute("failed")
          };

Assert.IsTrue(res.Count() > 0);

ファイルが .trx ファイルであることを確認しました。私は脳のおならを持っていますか、それとも欠けているものがありますか?

ありがとう、ビル

4

1 に答える 1

1

クエリで要素が見つからない理由として最も可能性が高いのは、XML のデフォルトの名前空間が考慮されていないことです。

XDocument doc = XDocument.Load(file);
XNamespace df = doc.Root.Name.Namespace;
var res = from o in doc.Descendants(df + "Counters")
          select new 
          {
              Total = (string)o.Attribute("total"),
              Executed = (string)o.Attribute("executed"),
              Passed = (string)o.Attribute("passed"),
              Failed = (string)o.Attribute("failed")
          };

探している結果が得られます。そうでない場合は、XML のサンプルを投稿してください。

于 2012-04-11T09:15:23.950 に答える