使用C ++ xerces库,异常“节点在与创建它的文档不同的文档中使用”

时间:2013-04-15 10:04:34

标签: c++ xml dom xerces xerces-c

我从XML中提取了DomNode。然后我尝试使用DomNode将其插入位于不同DOMDocument的其他appendChild(DOMNode*),但我得到了DOMException

例外:

  

节点用于与创建它的文档不同的文档

问题:

如何将DomNodeDOMDocument移到另一个?{/ p>

1 个答案:

答案 0 :(得分:1)

我继续回答这个问题,提出这个问题的人让我得到了这个答案,但我花了一些时间来弄清楚整个概念。

// 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);

  ...

如上所示,首先需要将节点导入文档以向节点提供所有者文档,然后将其附加到您想要放置的文档中。