2017-02-18 2 views
0

Я пытаюсь создать большую структуру данных XML, используя кучу разных XML-файлов, где мне нужно как добавлять, так и заменять узлы в разных ситуациях. Я понимаю, что метод ReplaceChild похож на метод AppendChild, но он перезаписывает данный узел. Таким образом, учитывая, что это работает, чтобы добавитьReplaceChild vs 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

Вам необходимо передать два аргумента узла ReplaceChild, см. https://msdn.microsoft.com/en-us/library/system.xml.xmlnode.replacechild(v=vs.110).aspx

общественный виртуальный XmlNode ReplaceChild (XmlNode newChild, XmlNode oldChild)

поэтому первый аргумент является новым ребенком, второй аргумент является существующим ребенком, которого вы хотите заменить. Метод, который вы вызываете ReplaceChild on, является родительским узлом.

+0

А, это имеет смысл. Вы должны поменять объект на объект. – Gordon

Смежные вопросы