-1

Я новичок в PowerShell. Я должен написать скрипт, который может вернуть мне значение первого родителя (узла), передав дочерний узел.

У меня есть следующий XML. Когда я передаю сценарию PowerShell значение "AAA", он должен возвращать "parent2", а когда я передаю "III", он должен возвращать "parent311".

Может кто-нибудь помочь мне написать этот сценарий?

XML:

<root>
  <parent>
    <parent2>
      <child>AAA</child>
    </parent2>
    <parent3>
      <child>BBB</child>
      <child>CCC</child>
      <child>DDD</child>
    </parent3>
    <parent4>
      <child>EEE</child>
    </parent4>
    <parent5>
      <child>FFF</child>
    </parent5>
  </parent>
  <parent21>
    <parent211>
      <child>GGG</child>
    </parent211>
    <parent311>
      <child>HHH</child>
      <child>III</child>
      <child>JJJ</child>
    </parent311>
    <parent411>
      <child>KKK</child>
    </parent411>
    <parent511>
      <child>LLL</child>
    </parent511>
  </parent21>
</root>

1 ответ1

0

Если у вас есть ссылка на дочерний узел, вы можете получить его родительский узел, используя соответствующее свойство ParentNode . Например, с файлом XML, который вы разместили:

$xml = [xml](Get-Content file.xml)
$child = $xml.SelectSingleNode("root/parent/parent2/child")
$child.ParentNode.Name

Конечно, вы, вероятно, используете какой-то другой метод для получения дочернего узла, кроме SelectSingleNode() , но он служит для иллюстрации примера. Результат вышеупомянутого будет:

parent2

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .