1

我有一个类似于以下结构的 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")

但这给了我一个错误。有人可以建议如何去做吗?

4

1 回答 1

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)
于 2012-05-09T23:11:10.260 回答