我有这个XML文件:
<shows>
<breaking.bad />
<stranger.things />
</shows>
我想用powershell修改它,所以它会变成:
<shows>
<breaking.bad />
<stranger.things />
</shows>
<movies>
</movies>
我尝试过这个并没有用:
$doc = [xml](get-content "c:\list.xml")
$movies = $doc.createelement("movies")
$doc.appendchild($movies)
有一个错误说: 异常调用&#34; AppendChild&#34;用&#34; 1&#34;参数:&#34;本文档已经有一个&#39; DocumentElement&#39; 。节点#&34; 在行:3 char:1 + $ doc.appendchild($ movies)
答案 0 :(得分:1)
如果要添加另一个顶级元素,则需要将其添加到容器本身。
为了完成这项工作,我添加了一个顶级Document
节点,然后将Shows
作为其中的一个子节点,就像这样。
[xml]$x = "
<document>
<shows>
<breaking.bad />
<stranger.things />
</shows>
</document>"
然后,我使用CreateElement
方法定义了一个与您类似的新元素。最后,我将其添加到文档中。
$newElement = $x.CreateElement("movies")
$x.document.AppendChild($newElement)
输出:
$x.OuterXml
<document><shows><breaking.bad /><stranger.things /></shows><movies /></document>