Ваш код не работает, когда существует только один <sr>
узел, потому что в этом случае $css.Env.Web.sr
не возвращает массив. Возвращенный узел не имеет свойства Length
(или Count
), поэтому ваш цикл for
просто пропускается.
Вот почему практически всегда предпочтительнее использовать SelectNodes()
(или SelectSingleNode()
) с выражениями XPath.
$sra = $css.SelectNodes('//sr') | Select-Object -Expand id
Добавьте оператор подвыражения массива, если вам нужно, чтобы $sra
был массивом независимо от количества <sr>
узлов:
$sra = @($css.SelectNodes('//sr') | Select-Object -Expand id)