БЕКОН по существу предоставил ключевые указатели в комментариях к вопросу:
Использование Точечная нотация PowerShell n напрямую возвращает текстовое содержимое конечные элементы (элементы только с текстовым дочерним узлом), поэтому не нужно '.#text'
:
# Note: `.lvl4` is an *array* provided by PowerShell, so the index is
# 0-based. Therefore, [2] retrieves the *3rd* element.
$response.lvl1.lvl2.lvl3.lvl4[2] # -> 'test3'
Обратите внимание, что PowerShell предоставляет несколько элементов lvl4
как массив , поэтому индексирование в этот массив основано на 0
.
Ваша команда XPath должен работать как есть, но учтите, что индексы в XPath * на основе *1030*, поэтому [2]
будет ссылаться на элемент 2nd :
$response.SelectSingleNode('lvl1/lvl2/lvl3/lvl4[2]').InnerText # -> 'test2'
# Equivalent commands:
$response.SelectSingleNode('lvl1/lvl2/lvl3/lvl4[2]').'#text'
$response.SelectSingleNode('lvl1/lvl2/lvl3/lvl4[2]/text()').Value