Я пытаюсь добавить корневой комментарий к 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