【问题标题】:How to remove a child node from an XML file in C++ using Xerces-C?如何使用 Xerces-C 从 C++ 中的 XML 文件中删除子节点?
【发布时间】:2011-08-05 08:22:28
【问题描述】:
    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>

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

【问题讨论】:

  • 既然你找到了答案,你应该接受它。

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


【解决方案1】:

自己找到了答案。

对DOM的理解不同。在这种情况下&lt;root&gt;的子节点是root的文本节点,child1,child1的文本节点,child2,child2的文本节点。 所以 root 的子节点数是 5。但通常,按照 XML 表示法,我们认为它们是 2。 因此,当我尝试删除最后一个孩子时,这是一个错误。我们可以从 child2 中删除该文本节点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    相关资源
    最近更新 更多