C++ 例外情况;节点用于与创建它的文档不同的文档中;使用C++;xerces图书馆
我从XML中提取了一个C++ 例外情况;节点用于与创建它的文档不同的文档中;使用C++;xerces图书馆,c++,xml,dom,xerces,xerces-c,C++,Xml,Dom,Xerces,Xerces C,我从XML中提取了一个DomNode。然后,我尝试使用appendChild(DomNode*)将其插入另一个DomNode中的DomNode,但我得到了一个DOMException 例外情况: 节点用于与创建它的文档不同的文档中 问题是: 如何将DomNode从一个DOMDocument移动到另一个?我继续回答这个问题,问这个问题的人引导我找到了这个答案,但我花了一些时间才弄清楚整个概念 // Result is from an xpath query while(result->ite
DomNode
。然后,我尝试使用appendChild(DomNode*)
将其插入另一个DomNode
中的DomNode
,但我得到了一个DOMException
例外情况:
节点用于与创建它的文档不同的文档中
问题是:
如何将
DomNode
从一个DOMDocument
移动到另一个?我继续回答这个问题,问这个问题的人引导我找到了这个答案,但我花了一些时间才弄清楚整个概念
// Result is from an xpath query
while(result->iterateNext())
{
// Creating the new document
DOMDocument * doc = this->domImplementation->createDocument();
// Importing the node from the old document to the new document scope
DOMNode * node = doc->importNode(result->getNodeValue(), true);
// Appending the node to the new document
doc->appendChild(node);
...
如上所述,首先需要将节点导入到文档中,为节点提供一个所有者文档,然后将其附加到该文档中您希望放置的位置。创建一个新节点,该节点是您提取的节点的副本。thanxs john可供您评论,但它无法工作,因为我尝试使用克隆,但无法工作。虽然我已经解决了这个问题,但在浏览了API之后,我找到了一个importNode(DOMNode*,bool),它适合我。