我正在尝试使用一堆不同的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没有问题,但是如果可以只替换首选的节点。
答案 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
的方法是父节点。