ReplaceChild与AppendChild

时间:2017-02-18 16:41:57

标签: xml powershell

我正在尝试使用一堆不同的XML文件构建一个大型XML数据结构,我需要在不同情况下追加和替换节点。我的理解是,ReplaceChild方法就像AppendChild方法一样,但它会覆盖有问题的节点。所以,鉴于这可以附加

$parentNode.AppendChild($result.xml.ImportNode($temp.xml.SelectSingleNode("//Product[@id='$($node.ID)']/$($firmNode.Name)"), $true)) > $null

我试过这个替换

$parentNode.ReplaceChild($result.xml.ImportNode($temp.xml.SelectSingleNode("//Product[@id='$($node.ID)']/$($firmNode.Name)"), $true)) > $null

我得到"找不到" ReplaceChild"的重载。我被迫使用PS2.0,所以我在想没有ReplaceChild可用吗?我可以使用RemoveChild然后AppendChild没有问题,但是如果可以只替换首选的节点。

1 个答案:

答案 0 :(得分:1)

您需要将两个节点参数传递给ReplaceChild,请参阅https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.replacechild(v=vs.110).aspx

  

public virtual XmlNode ReplaceChild(XmlNode newChild,XmlNode   oldChild)

所以第一个参数是新子节点,第二个参数是要替换的现有子节点。您调用ReplaceChild的方法是父节点。