2017-04-24 94 views
0

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

有一个错误说: 异常调用 “的appendChild” 与 “1” 的说法(S):“这个文件已经有一个'DocumentElement'节点。“ 在线:3 char:1 + $ doc.appendchild($ movies)

+0

请提供确切的错误信息,并说明如何你的代码不能正常工作。 –

+0

编辑错误 –

+1

Xml文件只能有一个根节点 –

回答

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>