Как создать комментарий root / пролог XML с помощью PowerShell? - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь добавить корневой комментарий к XML-файлу, в котором его нет.Я близок, но не могу получить его в области root / prolog и вместо этого могу вставить его только после первого элемента.

(preloading [xml]$UpdatenuspecFile=somefile.nuspec)

То, что мне кажется логичным для работы, было бы:

 $UpdatednuspecFile.'#comment' = "test"

Но это приводит к:

Cannot set "#comment" because only strings can be used as values to set XmlNode properties.
At line:1 char:1
+ $UpdatednuspecFile.'#comment' = "test"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], SetValueException
    + FullyQualifiedErrorId : XmlNodeSetRestrictionsMoreThanOneNode

Некоторым (нет, МНОГО)Googlefu приблизил меня, используя:

$XMLComment="This is my comment"
$UpdatednuspecFile = [xml]([System.IO.File]::ReadAllText(file.nuspec))
$Comment = $UpdatednuspecFile.CreateComment($XMLComment)
$UpdatednuspecFile.DocumentElement.InsertBefore($Comment,$UpatednuspecFile.DocumentElement)

Я пробовал много вариантов выше, таких как InsertBefore и InserAfter для $UpatednuspecFile.DocumentElement, $UpatednuspecFile, $UpatednuspecFile.FirstNode, $UpatednuspecFile.xml,$UpatednuspecFile.package, и т. Д. И т. П.

И не удается отобразить его сразу после объявления XML;то есть строка 2.

Вместо этого мой комментарий всегда отображается внутри первого элемента (пакета) в начале или внизу.

и отображается (в зависимости от метода выше) через $UpdatednuspecFile.package.'#comment'

Ожидаемый результат будет вставлен и будет отображаться для $UpdatednuspecFile.'#comment", чтобы показать $XMLComment

...