我目前與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(...)
!