DOMElement no tiene ningún miembro llamado 'getFirstElementChild xercesc C++

Estoy escribiendo un archivo analizador xml, llamado GetConfig.cpp. Aquí está mi archivo de encabezado de 'GetConfig.h`:

#include <xercesc/dom/DOM.hpp>
#include <xercesc/dom/DOMDocument.hpp>
#include <xercesc/dom/DOMDocumentType.hpp>
#include <xercesc/dom/DOMElement.hpp>
#include <xercesc/dom/DOMImplementation.hpp>
#include <xercesc/dom/DOMImplementationLS.hpp>
#include <xercesc/dom/DOMNodeIterator.hpp>
#include <xercesc/dom/DOMText.hpp>
#include <xercesc/dom/DOMNode.hpp>

#include <xercesc/parsers/XercesDOMParser.hpp>
#include <xercesc/util/XMLUni.hpp>
#include <xercesc/util/PlatformUtils.hpp>
#include <xercesc/util/XMLString.hpp>

Sin embargo, cuando intento compilar el programa, obtengo:

/home/pribeiro/sandbox/GetConfig.cpp:372: error: 'class xercesc_2_2::DOMElement' has no member named 'getFirstElementChild'
/home/pribeiro/sandbox/GetConfig.cpp:381: error: 'class xercesc_2_2::DOMElement' has no member named 'getFirstElementChild'
/home/pribeiro/sandbox/GetConfig.cpp:392: error: 'class xercesc_2_2::DOMElement' has no member named 'getFirstElementChild'
/home/pribeiro/sandbox/GetConfig.cpp:396: error: 'class xercesc_2_2::DOMElement' has no member named 'getNextElementSibling'

No estoy seguro de por qué me sale eso... En esa declaración uso:

DOMElement *volume = dynamic_cast<xercesc::DOMElement*>
                                        (volManager);
while(volume){
    // to the parsing here
 volume = volume->getNextElementSibling();
}

No estoy seguro... Tal vez algo relacionado con la versión de xercesc? Cuando compilé eso para xercesc 3.1 funcionó bien.

preguntado el 27 de julio de 12 a las 16:07

1 Respuestas

Esas funciones se introdujeron en Xerces 3

Los ve mencionados en la documentación de la API de Xerces 3:

http://xerces.apache.org/xerces-c/apiDocs-3/classDOMElement.html

pero no en la documentación de la API de Xerces 2:

http://xerces.apache.org/xerces-c/apiDocs-2/classDOMElement.html

La cadena "getFirstElementChild" aparece 31 veces en las fuentes Xerces 3.1.1 pero no en las fuentes Xerces 2.8.0:

erik@ubuntu:/tmp$ file=http://archive.apache.org/dist/xerces/c/2/sources/xerces-c-src_2_8_0.tar.gz
erik@ubuntu:/tmp$ curl -s $file | tar xfz - -O | grep getFirstElementChild | wc -l
0
erik@ubuntu:/tmp$ file=http://archive.apache.org/dist/xerces/c/3/sources/xerces-c-3.1.1.tar.gz
erik@ubuntu:/tmp$ curl -s $file | tar xfz - -O | grep getFirstElementChild | wc -l
31
erik@ubuntu:/tmp$

Respondido 20 Oct 12, 09:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.