【发布时间】:2016-02-03 07:22:09
【问题描述】:
我目前在 Visual Studio 2010 中使用 xerces 3.1。
我写了这段(非常简单的)代码:
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(...) 的问题!
【问题讨论】:
标签: c++ dom xerces ownership xerces-c