2
我在我的项目中使用Xerces-c,并且希望创建一个DOMElement
而不必创建全新的DOMDocument
。这样的事情可能吗?如何创建一个空的DOMElement
我在我的项目中使用Xerces-c,并且希望创建一个DOMElement
而不必创建全新的DOMDocument
。这样的事情可能吗?如何创建一个空的DOMElement
我还没有看到一种方法。 AFAIK DOMDocument充当“内存池”,所有元素都在这个池中创建。在Xerces的docs我们看到:通过DOM文档:: createXXXX 用户创建可以调用释放()函数来表示所有孤立节点释放
对象。当一个孤儿节点被释放时,其相关的孩子也将被释放。访问已发布的节点将导致意外的行为。这些孤立节点最终会被释放,如果不这样做的话,它的主人文件发布
我已经保持便笺围绕DOM文档,并使用它来创建片段或孤儿解决这种情况下工作时,节点并在我准备好时将它们采用到目标文档中。例如。
// Create a fragment holding two sibling elements. The first element also has a child.
DOMDocumentFragment* frag = scratchDom->createDocumentFragment();
DOMNode* e1 = frag->appendChild(frag->getOwnerDocument()->createElement("e1"));
e1->appendChild(e1->getOwnerDocument()->createElement("e1-1"));
DOMNode* e2 = frag->appendChild(frag->getOwnerDocument()->createElement("e2"));
...
// Paste the contents of the fragment into a "parent" node from another document
DOMNode* parentFromOtherDom = ...;
parentFromOtherDom->appendChild(parentFromOtherDom->getOwnerDocument()->adopt(frag));
scratchDom->removeChild(frag);