0

<testcase>いくつかのタグを持つ XML があります。それらのいくつかは、値が "pr" の属性 "ident" を持っていますが、持っていないものもあります。

<testcase>
  <teststep ident="Preparation" result="na">blabla</teststep>
  <teststep ident="" result="pass">blabla</teststep>
  <teststep ident="-" result="na">blabla</teststep>
  <teststep ident="Info" result="na">blabla</teststep>
  <teststep ident="1" result="pass">blabla</teststep>
  <teststep ident="2" result="pass">blabla</teststep>
  <teststep ident="3" result="pass">blabla</teststep>
  <teststep ident="4" result="fail">blabla</teststep>
  <teststep ident="PR" result="na">blabla</teststep>
  <verdict result="fail" />
</testcase>

値が "pr" の ident 属性を含むテストケースをクエリしたい

IEnumerable<XElement> failedPRTCs = report.Descendants("testcase").Where(t => t.Element("verdict").Attribute("result").Value == "fail" && t.Descendants("teststep").Where(ts=> ts.Attribute("ident").Value == "pr").ToList().Count > 0).ToList();

現在のクエリは 0 を返します。何が問題なのですか?

4

1 に答える 1

1

ケーシングの簡単な問題のように見えます!"pr""PR"Anyではなく、次のものを使用することもお勧めしcount > 0ます。

IEnumerable<XElement> failedPRTCs = report.Descendants("testcase")
    .Where(t => t.Element("verdict").Attribute("result").Value == "fail" &&
           t.Descendants("teststep").Any(ts=> ts.Attribute("ident").Value == "PR"));
于 2012-09-11T07:59:36.140 に答える