简单的Linq to XML查询无法处理MSTest文件(* .trx)

时间:2012-04-10 20:23:11

标签: linq-to-xml mstest

我看不出为什么这个查询不起作用。

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文件。我有脑屁或者有什么东西我不见了?

谢谢,比尔

1 个答案:

答案 0 :(得分: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样本。