Я пытаюсь выбрать значение из дочернего узла, основываясь на атрибуте родительского узла (из-за того, что родительский узел имеет похожие имена). Мне нужно получить все значения из узла на основе атрибута родителя (ID).
Поэтому для каждой записи мне нужно соответствующее ЗНАЧЕНИЕ (RECORD / FIELD / DATA / VALUE).
XML:
<PAGE id="8">
<RECORD>
<GUID>83704498-6ee6-4705-9280-0f0fe90e1148</GUID>
<FIELD id="21">
<DATA>
<GUID>4a2bd78d-beab-4508-af76-0d14fe290709</GUID>
<VALUE>Certificate 1</VALUE>
</DATA>
</FIELD>
<FIELD id="22">
<DATA>
<VALUE>2015-01-20</VALUE>
</DATA>
</FIELD>
<RECORD>
<GUID>83704498-6ee6-4705-9280-0f0fe90e1148</GUID>
<FIELD id="21">
<DATA>
<GUID>4a2bd78d-beab-4508-af76-0d14fe290709</GUID>
<VALUE>Certificate 2</VALUE>
</DATA>
</FIELD>
<FIELD id="22">
<DATA>
<VALUE>2015-01-20</VALUE>
</DATA>
</FIELD>
</RECORD>
</PAGE>
Powershell:
$record = $XML.SelectNodes('//PAGE/RECORD') | Select-Object @{'Name' = 'records' ; 'Expression' = {
$_.FIELD.DATA.VALUE} }, GUID
$recordString = ($record | Out-String)
write-host $recordString
Этот вывод дает мне правильное значение и GUID, но я получаю значения из всех полей, но мне нужно только значение из поля с атрибутом ID = 21.