Используя функции MSXML2 из библиотеки msxml3.dll, я пытаюсь дублировать разделы в документе XML, но он не работает так, как я ожидал.Метод MSXML node.clode не работает должным образом
Вот XML:
<result>
<Target>
<Point>
<pos dimension="2">60.384005 5.333862</pos>
</Point>
</Target>
</result>
То, что я хочу, чтобы добавить несколько разделов. Поэтому я хочу взять узел, дублировать его и поместить его под существующий узел <Target>
. Я почти уверен, что должен использовать метод Clone, но он, похоже, не работает. код C++:
typedef MSXML2::IXMLDOMNodePtr XmlNode;
XmlNode pNode = pXMLRequest->selectSingleNode("//result");
if(pNode==NULL)
{ m_szErrorText = m_szErrorText + _T(" 'result' node not found");return FALSE;}
XmlNode pTargetNode = pNode->selectSingleNode("Target");
XmlNode pNewTargetNode = pTargetNode->cloneNode(true);
pNode->appendChild(pNewTargetNode);
Но когда я запускаю этот код ничего не происходит с документом XML. И когда я проверяю XML-текст в pNewTargetNode, я вижу только '<result>'
, который является только именем узла. В то время как я ожидал, что он будет содержать все узлы в <Target>...</Target>
. Есть что-то, чего я не хватает?
Можете ли вы предоставить сообщение исключения? – Seb
Я ошибся. Код, показанный выше, фактически не генерирует исключение (это выдержка из более крупного раздела). Он просто не работает, сам XML не изменился. Я удалил текст исключения из вопроса. –