Powershell 5.1: XPath «Произошел неожиданный конец файла» - PullRequest
1 голос
/ 03 мая 2020

Я слежу за книгой "Windows PowerShell в действии" и пытаюсь извлечь некоторые значения из файла XML, однако каждый раз, когда я пытаюсь запустить скрипт, Powershell жалуется на неожиданный конечный тег, неожиданный конец файла и другие вещи, как будто исходный файл XML был полностью поврежден (но это не так).

Вот скрипт:

$config = Get-Content -path "C:\configs\ams\ams_merge_cgp.xml"
(Select-Xml -Content $config -XPath /process-config).Node

"process-config" - это root узел источника XML.

Я получаю ошибки такого рода :

Select-Xml : Cannot convert value "     <input name="newsIn">" to type "System.Xml.XmlDocument". Error: "Unexpected end of file has occurred. The following elements are not closed: input. Line 1, position 23."
At C:\ps_scripts\xmltest.ps1:3 char:2
+ (Select-Xml -Content $config -XPath /process-config).Node

1 Ответ

2 голосов
/ 03 мая 2020

О, понятно. Содержимое должно быть одной строкой, а не массивом строк для каждой строки.

$config = get-content -path file.xml -raw
(select-xml -Content $config -xpath /process-config).node

input
-----
{newsIn, newsOut}

Вы также можете просто использовать -path:

select-xml -xpath /process-config -Path file.xml | % n*
select-xml /process-config file.xml | % n*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...