Powershell:将节点添加到XML根目录

时间:2017-04-24 15:24:47

标签: xml powershell

我有这个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)

1 个答案:

答案 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>