En esta página

QXmlContentHandler Class

La clase QXmlContentHandler proporciona una interfaz para informar del contenido lógico de los datos XML. Más...

Cabecera: #include <QXmlContentHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
Heredado Por:

QXmlDefaultHandler

Nota: Todas las funciones de esta clase son reentrantes.

Funciones Públicas

virtual ~QXmlContentHandler()
virtual bool characters(const QString &ch) = 0
virtual bool endDocument() = 0
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) = 0
virtual bool endPrefixMapping(const QString &prefix) = 0
virtual QString errorString() const = 0
virtual bool ignorableWhitespace(const QString &ch) = 0
virtual bool processingInstruction(const QString &target, const QString &data) = 0
virtual void setDocumentLocator(QXmlLocator *locator) = 0
virtual bool skippedEntity(const QString &name) = 0
virtual bool startDocument() = 0
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) = 0
virtual bool startPrefixMapping(const QString &prefix, const QString &uri) = 0

Descripción detallada

Si la aplicación necesita ser informada de eventos básicos de análisis sintáctico, puede implementar esta interfaz y activarla mediante QXmlReader::setContentHandler(). El lector puede entonces informar de eventos básicos relacionados con el documento como el inicio y fin de elementos y datos de caracteres a través de esta interfaz.

El orden de los eventos en esta interfaz es muy importante, y refleja el orden de la información en el propio documento. Por ejemplo, todo el contenido de un elemento (datos de caracteres, instrucciones de procesamiento y subelementos) aparece, en orden, entre el evento startElement() y el correspondiente evento endElement().

La clase QXmlDefaultHandler proporciona una implementación por defecto para esta interfaz; la subclase de la clase QXmlDefaultHandler es muy conveniente si sólo se desea ser informado de algunos eventos de análisis sintáctico.

La función startDocument() se llama al principio del documento, y endDocument() se llama al final. Antes de que comience el análisis se llama a setDocumentLocator(). Para cada elemento se llama a startElement(), y al final de cada elemento se llama a endElement(). La función characters() se llama con trozos de datos de caracteres; ignorableWhitespace() se llama con trozos de espacios en blanco y processingInstruction() se llama con instrucciones de procesamiento. Si se omite una entidad, se llama a skippedEntity(). Al principio de los ámbitos prefijo-URI se llama a startPrefixMapping().

Véase también QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, y QXmlLexicalHandler.

Documentación de las funciones miembro

[virtual noexcept] QXmlContentHandler::~QXmlContentHandler()

Destruye el gestor de contenidos.

[pure virtual] bool QXmlContentHandler::characters(const QString &ch)

El lector llama a esta función cuando ha analizado un trozo de datos de caracteres (ya sean datos de caracteres normales o datos de caracteres dentro de una sección CDATA; si necesita distinguir entre esos dos tipos debe utilizar QXmlLexicalHandler::startCDATA() y QXmlLexicalHandler::endCDATA()). Los datos de caracteres se indican en ch.

Algunos lectores informan de los espacios en blanco en el contenido de los elementos utilizando la función ignorableWhitespace() en lugar de utilizar ésta.

Un lector puede reportar los datos de caracteres de un elemento en más de un chunk; por ejemplo, un lector puede querer reportar "a<b" en tres eventos characters() ("a ", "<" y " b").

Si esta función devuelve false, el lector interrumpe el análisis e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

[pure virtual] bool QXmlContentHandler::endDocument()

El lector llama a esta función una vez que ha finalizado el análisis sintáctico. Se llama una sola vez, y es la última función llamada. Se llama después de que el lector haya leído toda la entrada o haya abandonado el análisis debido a un error fatal.

Si esta función devuelve false, el lector interrumpe el análisis sintáctico e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también startDocument().

[pure virtual] bool QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)

El lector llama a esta función cuando ha analizado una etiqueta de elemento final con el nombre cualificado qName, el nombre local localName y el URI de espacio de nombres namespaceURI.

Si esta función devuelve false, el lector interrumpe el análisis e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también startElement().

[pure virtual] bool QXmlContentHandler::endPrefixMapping(const QString &prefix)

El lector llama a esta función para señalar el final de una asignación de prefijos para el prefijo prefix.

Si esta función devuelve false, el lector interrumpe el análisis sintáctico e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también startPrefixMapping().

[pure virtual] QString QXmlContentHandler::errorString() const

El lector llama a esta función para obtener una cadena de error, por ejemplo, si alguna de las funciones del manejador devuelve false.

[pure virtual] bool QXmlContentHandler::ignorableWhitespace(const QString &ch)

Algunos lectores pueden utilizar esta función para informar de cada trozo de espacio en blanco en el contenido de los elementos. El espacio en blanco se notifica en ch.

Si esta función devuelve false, el lector deja de analizar e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

[pure virtual] bool QXmlContentHandler::processingInstruction(const QString &target, const QString &data)

El lector llama a esta función cuando ha analizado una instrucción de proceso.

target es el nombre de destino de la instrucción de proceso y data son los datos de la instrucción de proceso.

Si esta función devuelve false, el lector interrumpe el análisis sintáctico e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

[pure virtual] void QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)

El lector llama a esta función antes de empezar a analizar el documento. El argumento locator es un puntero a un QXmlLocator que permite a la aplicación obtener la posición de análisis dentro del documento.

No destruya el locator; se destruye cuando se destruye el lector. (No utilice locator una vez destruido el lector).

[pure virtual] bool QXmlContentHandler::skippedEntity(const QString &name)

Algunos lectores pueden saltarse entidades si no han visto las declaraciones (por ejemplo, porque están en una DTD externa). Si lo hacen, informan de que se han saltado la entidad llamada name llamando a esta función.

Si esta función devuelve false, el lector interrumpe el análisis sintáctico e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

[pure virtual] bool QXmlContentHandler::startDocument()

El lector llama a esta función cuando empieza a analizar el documento. El lector llama a esta función una sola vez, después de la llamada a setDocumentLocator(), y antes de llamar a cualquier otra función de esta clase o de la clase QXmlDTDHandler.

Si esta función devuelve false, el lector interrumpe el análisis e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también endDocument().

[pure virtual] bool QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)

El lector llama a esta función cuando ha analizado una etiqueta de elemento inicial.

Hay una llamada correspondiente a endElement() cuando se lee la etiqueta de elemento final correspondiente. Las llamadas a startElement() y endElement() siempre se anidan correctamente. Las etiquetas de elemento vacías (por ejemplo, <x/>) hacen que una llamada a startElement() vaya seguida inmediatamente de una llamada a endElement().

La lista de atributos proporcionada sólo contiene atributos con valores explícitos. La lista de atributos contiene atributos utilizados para la declaración de espacios de nombres (es decir, atributos que empiezan por xmlns) sólo si la propiedad namespace-prefix del lector es verdadera.

El argumento namespaceURI es el URI del espacio de nombres, o una cadena vacía si el elemento no tiene URI de espacio de nombres o si no se realiza ningún procesamiento del espacio de nombres. localName es el nombre local (sin prefijo), o una cadena vacía si no se realiza ningún procesamiento del espacio de nombres, qName es el nombre cualificado (con prefijo) y atts son los atributos adjuntos al elemento. Si no hay atributos, atts es un objeto de atributos vacío.

Si esta función devuelve false, el lector interrumpe el análisis sintáctico e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también endElement().

[pure virtual] bool QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)

El lector llama a esta función para señalar el inicio de un ámbito de asignación de prefijo-URI de espacio de nombres. Esta información no es necesaria para el procesamiento normal de espacios de nombres, ya que el lector sustituye automáticamente los prefijos de los nombres de elementos y atributos.

Tenga en cuenta que no se garantiza que las llamadas a startPrefixMapping() y endPrefixMapping() estén correctamente anidadas entre sí: todos los eventos startPrefixMapping() ocurren antes del correspondiente evento startElement(), y todos los eventos endPrefixMapping() ocurren después del correspondiente evento endElement(), pero su orden no está garantizado.

El argumento prefix es el prefijo del espacio de nombres que se declara y el argumento uri es el URI del espacio de nombres al que se asigna el prefijo.

Si esta función devuelve false, el lector deja de analizar e informa de un error. El lector utiliza la función errorString() para obtener el mensaje de error.

Véase también endPrefixMapping().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.