Вероятно, есть много решений.Вот один из быстрых:
$xml = [xml]"<car>
<germany>
<manufacturer>Opel</manufacturer>
<manufacturer>BMW</manufacturer>
<manufacturer>Benz</manufacturer>
<manufacturer>b</manufacturer>
<manufacturer>a</manufacturer>
<manufacturer>c</manufacturer>
</germany>
<japan>
<manufacturer>Nissan</manufacturer>
<manufacturer>Daihatsu</manufacturer>
</japan></car>"
$g = $xml.car.germany| select-xml 'manufacturer' | Select-Object -expand Node | sort '#text'
$j = $xml.car.japan | select-xml 'manufacturer' | Select-Object -expand Node | sort '#text'
@"
<car>
<germany>
$( ($g | % { $_.OuterXml}) -join "`n`t" )
</germany>
<japan>
$( ($j | % { $_.OuterXml}) -join "`n`t" )
</japan></car>
"@
Обратите внимание, что я использовал Select-Xml
для извлечения производителей из XML, потому что $xml.car.germany.manufacturer
вернул только массив строк (у вас, вероятно, были проблемы с этим).Я не смог получить оригинальный объект, даже с помощью свойства PsBase
.Вот почему я использовал Select-Xml
.