我正在尝试将根注释添加到一个没有XML的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