Я пытаюсь заменить узел в одном документе XML узлом из другого документа XML. Я получаю следующее сообщение об ошибке:Правильное использование MSXML replaceChild
Insert position node must be a Child of the node to insert under.
Это упрощенная версия моего XML: XMLDOC1
<pages>
<page id="1">
<content>First Document</content>
</page>
</pages>
Другой XML документ является точно такой же в составе: XMLDOC2
<pages>
<page id="1">
<content>Second Document</content>
</page>
</pages>
Мне нужно заменить узел страницы первого документа узлом страницы второго документа. Моя попытка выглядит так:
firstNode = xmlDoc1.selectSingleNode("//page[@id=1]")
secondNode = xmlDoc2.selectSingleNode("//page[@id=1]")
xmlDoc1.replaceChild(firstNode, oldNode)
Спасибо.
Решение
firstNode.parentNode.replaceChild(xmlDoc1.importNode(secondNode, true), firstNode)
Да, была опечатка. Я обновил свой код, и он отлично работает (см. Обновленный вопрос). Спасибо за разъяснение в бит importNode; Я заметил это где-то еще, но не знал, почему. – scader