Итак, у меня есть XML, который я создаю, а затем пытаюсь Сортировать его на основе элемента, но он не работает.Сортировка XML с использованием Powershell
Мой код
$xml = [xml](Get-Content $args)
function readServersfromXML () {
$xml.Settings.Server | select -ExpandProperty Name
}
function readServerServicesfromXML ($server) {
$xml.Settings.Server | Where-Object {$_.Name -eq $server} | Select-Object -ExpandProperty Services
}
function getServerServiceStatus ($servers) {
foreach ($server in $servers) {
$services = (readServerServicesfromXML $server)
foreach ($service in $services.ChildNodes) {
$service | Sort-Object StartOrder
}
}
}
$servers = readServersfromXML
getServerServiceStatus ($servers)
XML
<?xml version="1.0"?>
<Settings>
<Server>
<Name>Server1</Name>
<StartOrder>1</StartOrder>
<Services>
<Service>
<Name>Service1</Name>
<StartOrder>1</StartOrder>
</Service>
<Service>
<Name>Service2</Name>
<StartOrder>2</StartOrder>
</Service>
<Service>
<Name>Service4</Name>
<StartOrder>4</StartOrder>
</Service>
<Service>
<Name>Service3</Name>
<StartOrder>3</StartOrder>
</Service>
</Services>
</Server>
</Settings>
Я хотел бы ожидать выход быть как этот
Name StartOrder
---- ----------
Service1 1
Service2 2
Service3 3
Service4 4
Выходной сигнал я получаю это:
Name StartOrder
---- ----------
Service1 1
Service2 2
Service4 4
Service3 3
У кого-нибудь есть идея? Я попытался запустить StartOrder в [int], но это тоже не работает. Любая помощь предоставляется.
Вы сортировки каждую строку по отдельности. Вы пробовали сортировать '$ services.ChildNodes' вместо этого? –