Как прочитать XML-файл, который содержит заголовок, используя PowerShell - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь прочитать этот XML-файл с помощью PowerShell:

<?xml version='1.1' encoding='UTF-8'?>  

<Root>  
  <element1>  
    <string>name</string>  
  </element1>  
  <version>3.2.1</version>  
</Root>  

Используемая мной команда PowerShell:

$fileContent = New-Object XML
$fileContent.Load($filePath)  # $filePath contains the path to the XML file above

, и я получаю следующую ошибку:

Исключение вызывает "Load" с аргументом (ами) "1": "Номер версии '1.1' недопустим.

Если я удаляю заголовок <?xml version='1.1' encoding='UTF-8'?> или комментирую его (<!-- <?xml version='1.1' encoding='UTF-8'?> -->) Я больше не получаю сообщение об ошибке. Проблема в том, что мне нужен этот заголовок.

Как я могу прочитать файл XML с заголовком, используя PowerShell?

1 Ответ

0 голосов
/ 19 сентября 2018

XML версия 1.1 не поддерживается в .NET.Смотрите следующую демонстрацию и объяснения:

@'
<?xml version='1.1' encoding='UTF-8'?>  

<Root>  
  <element1>  
    <string>name</string>  
  </element1>  
  <version>3.2.1</version>  
</Root> 
'@ | Out-File Demo.xml

$content = (Get-Content .\Demo.xml)
[xml]$content #fails, not supportes
#if 'magical' features of v1.1 are not used, change version to 1.0
$fixed = $content.Replace('<?xml version=''1.1'' encoding=''UTF-8''?>','<?xml version=''1.0'' encoding=''UTF-8''?>')
[xml]$fixed #this should work

Я не рекомендую читать спецификации, потому что XML 1.1 не работает.Я бы порекомендовал этот пост в блоге о XML 1.1 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...