Разбор 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']");