如何使用Xerces-C从C ++中的XML文件中删除子节点?

时间:2011-08-05 08:22:29

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

    root = doc->getDocumentElement();
    child=root->getLastChild();

    DOMNode* removedElement = root->removeChild(child);
    removedElement->release();

如果XML文件是这样的,则子节点将换行符作为节点:

     <root>
         <child1> </child1>
         <child2> text </child2>
      </root>

如果XML文件的格式为

,则相同的代码正常工作并删除子代
     <root> <child1></child1><child2>text</child2> </root>

我怎样才能摆脱它(换行符)?

1 个答案:

答案 0 :(得分:1)

自己找到答案。

对DOM的理解是不同的。在这种情况下,<root>的子节点是root,child1,child1的文本节点,child2,child2的文本节点的文本节点。 所以root的子数是5.但一般来说,根据XML符号,我们认为它们是2。 所以当我尝试删除最后一个孩子时,这是一个错误。我们可以从child2中删除该文本节点。