我目前与2010年xerces_3_1 adoptNode()方法返回NULL
我写这个(很简单)的代码在Visual Studio 3.1的Xerces工作:
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(...)
!