2017-04-24 144 views
0

XMLのルートにノードを追加します。PowerShellの:私は、このXMLファイル持って

<shows> 
    <breaking.bad /> 
    <stranger.things /> 
</shows> 

を、私はそれがになりますので、PowerShellを使用して、それを変更したい:

<shows> 
    <breaking.bad /> 
    <stranger.things /> 
</shows> 
<movies> 
</movies> 

が、私はこれを試してみましたが、それはしませんでした作品: "1" の引数(複数可)と 例外呼び出し "のAppendChildを":

$doc = [xml](get-content "c:\list.xml") 
$movies = $doc.createelement("movies") 
$doc.appendchild($movies) 

というエラーがあります」このドキュメントには既に 'DocumentElement'ノードがあります。 " 行目:3文字: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> 
関連する問題