我有一个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")
但这给了我一个错误。有人可以建议怎么做吗?
答案 0 :(得分:3)
您应该在CreateElement
实例上使用XmlDocument
方法,例如:
$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)