2017-04-24 91 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>