xml — Узел исключения & quot; используется в документе, отличном от того, в котором он был создан & quot; использование библиотеки C ++ xerces

Я извлек DomNode из XML. Затем я попытался вставить его в другой DomNode расположен в другом DOMDocument с помощью appendChild(DOMNode*) но я получил DOMException,

Исключение:

узел используется в другом документе, чем тот, который его создал

Вопрос:

Как я могу переместить DomNode от одного DOMDocument другому?

3

Решение

Я продолжаю отвечать на этот вопрос. Человек, который задал вопрос, привел меня к этому ответу, но мне потребовалось некоторое время, чтобы понять всю концепцию.

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

...

Как показано выше, сначала необходимо импортировать узел в документ, чтобы дать узлу документ владельца, а затем добавить его к этому документу, где бы вы ни хотели, чтобы он был размещен.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]