2012-05-09 33 views
1

を挿入:PowerShellのは、私は次のような構造を持つXMLファイルを持つ複数のXML要素

<a> 
    <b> 
    <c>aa</c> 
    </b> 
    <d> 
    <e>bb</e> 
    </d> 
</a> 

私がする必要がどのようなことの線に沿って何かを得るために、に追加要素を挿入します

<a> 
    <b> 
    <c>aa</c> 
    </b> 
    <d> 
    <e>bb</e> 
    <e>cc</e> 
    <e>dd</e> 
    <e>ff</e> 
    <e>gg</e> 
    </d> 
</a> 

私はPowershellでこれをやろうとしています。ここで私が試したものです:

$xml = "path_to_xml_file" 
$e1 = $xml.a.d.e 
$e2 = $e1.clone() 
$e2 = "cc" 
$xml.a.d.InsertAfter($e2,$e1) 
$xml.save("path_to_xml_file") 

しかし、これは私にエラーが発生します。誰かがこれをやり遂げる方法を提案できますか?

答えて

3

あなたは、例えばXmlDocumentインスタンス上CreateElementメソッドを使用する必要があります。:

$xml = [xml]@' 
<a> 
    <b> 
    <c>aa</c> 
    </b> 
    <d> 
    <e>bb</e> 
    </d> 
</a> 
'@ 

$newNode = $xml.CreateElement('e') 
$newNode.InnerText = "cc" 
$xml.a.d.AppendChild($newNode) 

また、あなたが使用する必要があるファイルからXMLを取得した場合:

$xml = [xml](Get-Content path_to_xml_file) 
+0

はありがとうございました!完璧に動作します – Alex

関連する問題