я сейчас работаю с Xerces 3.1 в Visual Studio 2010.xerces_3_1 adoptNode() возвращает NULL
я написал это (очень простой) кусок кода:
XMLPlatformUtils::Initialize();
DOMImplementation* impl = DOMImplementationRegistry::getDOMImplementation(L"XML 1.0");
DOMDocument* doc1 = impl->createDocument(L"nsURI", L"abc:root1", 0);
DOMDocument* doc2 = impl->createDocument(0, L"root2", 0);
DOMElement* root1 = doc1->getDocumentElement();
DOMElement* root2 = doc2->getDocumentElement();
DOMElement* el1 = doc1->createElement(L"el1");
root1->appendChild(el1);
DOMNode* tmpNode = doc2->adoptNode(el1); //tmpNode is null after this line
root2->appendChild(tmpNode);
doc1->release();
doc2->release();
xercesc::XMLPlatformUtils::Terminate();
Проблема в том , метод adoptNode(...)
всегда будет возвращать нулевой указатель, несмотря ни на что. Я действительно не понимаю, что здесь происходит, пожалуйста, помогите мне!
PS: Я знаю, что могу использовать метод importNode(...)
и удалять и освобождать старый узел из старого документа, но я надеялся, что был способ исправить мою проблему с помощью adoptNode(...)
!