Чтение XML-файла с помощью спецификации в Powershell - PullRequest
3 голосов
/ 10 мая 2011

Похоже, что Powershell работает с xml-файлом с юникодной спецификацией - код:

$xml = [xml]{ get-content $filename }

взрывается с «Неверные данные на корневом уровне».

Есть ли простой способ сделать это, не возиться с содержимым файла?

1 Ответ

6 голосов
/ 10 мая 2011

Вы пытаетесь преобразовать блок скрипта в XML здесь.Используйте () вместо {}:

$xml  = [xml] (gc $filename)

На самом деле сообщение об ошибке уже говорит вам об этом:

PS Home:\> $xml = [xml]{gc test.xml}
Cannot convert value "gc test.xml" to type "System.Xml.XmlDocument". Error: "Data at the root level is invalid. Line 1,
 position 1."
At line:1 char:13
+ $xml = [xml] <<<< {gc test.xml}
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

Вы заметили, как отображается содержимое блока скриптавверх в сообщении об ошибке?

...