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 回答