Как удалить дочерний узел из файла XML в C ++, используя Xerces-C? - PullRequest
1 голос
/ 05 августа 2011
    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 Ответ

1 голос
/ 02 сентября 2011

Сам нашел ответ.

Понимание DOM другое.Дочерними элементами <root> в этом случае являются текстовые узлы root, child1, текстовый узел child1, child2, текстовый узел child2.Таким образом, число дочерних элементов root равно 5. Но в целом, согласно XML-нотациям, мы думали, что они равны 2. Так что здесь, когда я пытаюсь удалить последнего дочернего элемента, это ошибка.Мы можем удалить этот текстовый узел из child2.

...