У меня есть файл XML, структурированный так:
<document>
<Asset>
<PropertyList Type="DataSource">
<Property Name="one" Value="some_value1" />
<Property Name="two" Value="some_value2" />
<Property Name="three" Value="some_value3" />
</PropertyList>
<PropertyList Type="DecisionMaker">
<Property Name="four" Value="FALSE" />
<Property Name="five" Value="FALSE" />
<Property Name="six" Value="FALSE" />
</PropertyList>
</Asset>
<Asset>
<PropertyList Type="DataSource">
<Property Name="one" Value="some_value6" />
<Property Name="two" Value="some_value7" />
<Property Name="three" Value="some_value8" />
</PropertyList>
<PropertyList Type="DecisionMaker">
<Property Name="four" Value="TRUE" />
<Property Name="five" Value="FALSE" />
<Property Name="six" Value="FALSE" />
</PropertyList>
</Asset>
</document>
На самом деле документ содержит десятки элементов и создается другой системой. Я хотел бы создать сценарий powershell, который будет искать в документе имя свойства «четыре» со значением «ИСТИНА», а затем выводить значение имени свойства «два», которое существует под его родственным элементом в том же активе родитель.
Я могу выполнить поиск в каждом узле свойств с равным именем "four" и значением "true", но я не знаю, как получить значение из элемента-брата:
[XML]$Test = Get-Content ("C:\folder\test.xml")
$Test.SelectNodes("//Property") | % { $_ | ?{ ($_.Name -eq "four" -and $_.Value -eq "TRUE") }} | Select $_.Value
Может ли кто-нибудь предложить какое-либо руководство?