Powershell xml в пустой файл json

Я пытаюсь преобразовать XML-файл в JSON с помощью PowerShell. До тех пор это очень просто, однако исходный файл кажется мне плохо закодированным, и когда я применяю convertto-json, структура json пуста:

Источник XML:

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>
<PnCG3_configuration>
  <domains>
    <domain Name = "xxxxx">
      <players>
        <player targetId = "00-1c-e6-02-0a-00" targetIdType = "mac" label = "test" middlewareFamily = "gekkota-3" />
        <player />
      </players>
    </domain>
    <domain Name = "xxxxxxx2">
      <players>
        <player targetId = "00-1c-e6-02-0a-00" targetIdType = "mac" label = "OfficeChateaugiron-TV01" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-20-00" targetIdType = "mac" label = "test-01" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-0b-00" targetIdType = "mac" label = "test-test-TV01" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-20-00" targetIdType = "mac" label = "test-TV01-test" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-20-00" targetIdType = "mac" label = "test" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-09-00" targetIdType = "mac" label = "test-test-TV01" middlewareFamily = "gekkota-3" />
        <player targetId = "00-1c-e6-02-04-00" targetIdType = "mac" label = "test-test-TV01" middlewareFamily = "gekkota-3" />
        <player />
      </players>
    </domain>

И Json Out:

[
    [

    ],
    [
        [
            [
                [
                    [

                    ],
                    [

                    ]
                ]
            ],
            [
                [
                    [

                    ],
                    [

                    ],
                    [

                    ],
                    [

                    ],
                    [

                    ],
                    [

                    ],

Мой код для конвертации:

$xmlObject = [XML](Get-Content -Path $o)
$xmlObject | ConvertTo-JSON -depth 100 | Out-File "$o.json"
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
5
0
716
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

К сожалению, это не так просто.

Взгляните на этот Репозиторий GitHub, который я использовал раньше, чтобы делать именно то, о чем вы просите.

Ваш код изменится на:

Add-Type -Path .\Newtonsoft.Json.dll
$xmlObject = [XML](Get-Content -Path $o)
[Newtonsoft.Json.JsonConvert]::SerializeXmlNode($xmlObject ) | Out-File "$o.json"

Использование этого метода действительно создало для меня много "пустого" шума.

[Newtonsoft.Json.JsonConvert]::SerializeXmlNode($xmlObject) | Out-File "$o.json"

Таким образом, перекомпиляция XML-файла удаляла пробелы и создавала аккуратный объект.

[Newtonsoft.Json.JsonConvert]::SerializeXmlNode([xml] $xmlObject.OuterXML ) | Out-File "$o.json"

Другие вопросы по теме