Разбор XML в C# и поиск "FAILED"

Я пытаюсь написать программу на C# для анализа XML-файла и просмотра состояния нескольких элементов, чтобы найти тот, который не удался. У меня нет большого опыта работы с XML, но я провел некоторые исследования и немного застрял. Я опубликую пример XML-файла ниже для справки. Я полагаю, что сначала проверю каждую группу, чтобы увидеть, какая из групп потерпела неудачу, а затем выполню поиск отдельных элементов этой группы.

<Diagnostics ActionType="SPV" Ver="48">
  <StartTimestamp>2014-04-18 13:36:44Z</StartTimestamp> 
- <Iteration>
- <NODE1>
     <Device Name="A" Register="IDCODE" Status="PASSED"/> 
     <Device Name="B" Register="IDCODE" Status="PASSED"/> 
     <Device Name="C" Register="IDCODE" Status="PASSED"/> 
     <Device Name="D" Register="IDCODE" Status="PASSED"/> 
     <Device Name="E" Register="IDCODE" Status="PASSED"/> 
     <Device Name="F" Register="IDCODE" Status="PASSED"/> 
     <Device Name="G" Register="IDCODE" Status="PASSED"/> 
     <Device Name="H" Register="IDCODE" Status="PASSED"/> 
     <Device Name="I" Register="IDCODE" Status="PASSED"/> 
     <Status>PASSED</Status> 
  </NODE1>
- <NODE2>
     <Status>PASSED</Status> 
  </NODE2>
- <NODE3>
     <Status>PASSED</Status> 
  </NODE3>
- <NODE4>
     <Device Name="A" Register="IDCODE" Status="PASSED"/> 
     <Device Name="B" Register="IDCODE" Status="PASSED"/> 
     <Device Name="C" Register="IDCODE" Status="PASSED"/> 
     <Device Name="D" Register="IDCODE" Status="PASSED"/> 
     <Device Name="E" Register="IDCODE" Status="PASSED"/> 
     <Device Name="F" Register="IDCODE" Status="PASSED"/> 
     <Device Name="G" Register="IDCODE" Status="PASSED"/> 
     <Device Name="H" Register="IDCODE" Status="PASSED"/> 
     <Device Name="I" Register="IDCODE" Status="PASSED"/> 
     <Status>PASSED</Status> 
  </NODE4>
- <NODE5>
     <Device Name="E" Status="PASSED" /> 
     <Device Name="F" Status="PASSED" /> 
     <Device Name="H" Status="FAILED" /> 
     <Device Name="I" Status="PASSED" /> 
     <Status>FAILED</Status> 
  </NODE5>
  <Passed>False</Passed> 
 </Iteration>
 <EndTimestamp>2014-04-18 13:36:44Z</EndTimestamp> 
</Diagnostics>

1 ответ

Решение

XmlNodeList node = xmlDoc.SelectNodes("//Device[@Status='FAILED']");

Другие вопросы по тегам