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 に答える