Создание вывода XML в Powershell - PullRequest
0 голосов
/ 14 мая 2018

Я использую версию PS 5 и пытаюсь создать xml, который должен выглядеть следующим образом:

<ConfigurationItemReport>
    <checkListItemCount>14</checkListItemCount>
    <checkListItems>
        <element>
            <checklistItemId>ID_1</checklistItemId>
            <checklistItemName>Name1</checklistItemName>
        </element>
        <element>
            <checklistItemId>ID_2</checklistItemId>
            <checklistItemName>Name2</checklistItemName>
        </element>
        ....  
    </checkListItems>
    <checkListName>CompCheck</checkListName>
    <serverIp>11.113.144.12</serverIp>
</ConfigurationItemReport>

На данный момент я написал следующий скрипт powershell 5.0, который не создает xml

$allout = @()

$allout += New-Object -TypeName psobject -Property @{

    checklistItemName = 'Name1'
}

$output = [ordered]@{

    serverHostname = $serverhostname
    checkListItems = $allout
}

foreach ($check in $allout) {
    $check.checkListItemName  

    $hash = @{
        "Enclosure Model Type" = $check.checkListItemName  
    }
    $obj = New-Object -TypeName psobject -Property $hash
    Export-Clixml -Path E:\WindowsOAC\test.xml
}

1 Ответ

0 голосов
/ 14 мая 2018

Вместо использования xml я бы предложил использовать json для языкового взаимодействия, поскольку вы планируете использовать сериализацию с powershell в python.powershell имеет встроенный командлет ConvertTo-Json, который выводит ваш объект в виде строки, которую затем можно вывести в файл.По умолчанию он углубляется в ваш объект только на два уровня, но это можно настроить с помощью параметра -Depth (он принимает аргумент int32):

$MyObject | ConvertTo-Json -Depth 5 | Out-File -FilePath C:\myfile.json
...