У меня следующий синтаксис XML, и я пытаюсь получить значение в идентификаторе узла "2", ключ строки "Vol2-3" на данный момент:
<nodes>
<node id="1">
<store>
<row key="Vol1-1" value="1a"/>
<row key="Vol1-2" value="1b"/>
<row key="Vol1-3" value="1c"/>
<row key="Vol1-4" value="1d"/>
</store>
</node>
<node id="2">
<store>
<row key="Vol2-1" value="2a"/>
<row key="Vol2-2" value="2b"/>
<row key="Vol2-3" value="2c"/>
<row key="Vol2-4" value="2d"/>
</store>
</node>
<node id="3">
<store>
<row key="Vol3-1" value="3a"/>
<row key="Vol3-2" value="3b"/>
<row key="Vol3-3" value="3c"/>
<row key="Vol3-4" value="3d"/>
</store>
</node>
</nodes>
Код:
$nodevar=2
[xml]$XMLDoc=(Get-Content "\..\..somefile.txt")
$value_extract=$XMLDoc.nodes.SelectNodes("node[@id='$nodevar']").store.SelectNodes("row[@key='']")
Проблема, с которой я столкнулся, заключается в том, что я пытаюсь настроить переменную $ value_extract на поворот от правильного идентификатора узла, чтобы получить соответствующий ключ строки, содержащий мое значение.Я написал это таким образом, что в конечном итоге я буду использовать SelectNodes в цикле for для получения значений, необходимых для дальнейшей обработки.Есть ли хороший способ написать это, так как я отклоняюсь от правильного идентификатора узла, а также от правильного ключа строки?