So I have some XML that I'm creating a collection on and then trying to Sort it based on an Element but it's not working.
My Code
$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>
I would expect the output to be like this
Name StartOrder
---- ----------
Service1 1
Service2 2
Service3 3
Service4 4
The Output I keep getting is this:
Name StartOrder
---- ----------
Service1 1
Service2 2
Service4 4
Service3 3
anyone have an idea? I've tried casting the StartOrder to an [int] but that doesn't work either. Any help is appriciated.
$services.ChildNodesinstead?