En esta página

QXmlDefaultHandler Class

La clase QXmlDefaultHandler proporciona una implementación por defecto de todas las clases de manejadores XML. Más...

Cabecera: #include <QXmlDefaultHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
Hereda: QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, y QXmlDeclHandler

Nota: Todas las funciones de esta clase son reentrantes.

Funciones públicas

Funciones públicas reimplementadas

virtual bool attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value) override
virtual bool characters(const QString &ch) override
virtual bool comment(const QString &ch) override
virtual bool endCDATA() override
virtual bool endDTD() override
virtual bool endDocument() override
virtual bool endElement(const QString &namespaceURI, const QString &localName, const QString &qName) override
virtual bool endEntity(const QString &name) override
virtual bool endPrefixMapping(const QString &prefix) override
virtual bool error(const QXmlParseException &exception) override
virtual QString errorString() const override
virtual bool externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool fatalError(const QXmlParseException &exception) override
virtual bool ignorableWhitespace(const QString &ch) override
virtual bool internalEntityDecl(const QString &name, const QString &value) override
virtual bool notationDecl(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool processingInstruction(const QString &target, const QString &data) override
virtual bool resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret) override
virtual void setDocumentLocator(QXmlLocator *locator) override
virtual bool skippedEntity(const QString &name) override
virtual bool startCDATA() override
virtual bool startDTD(const QString &name, const QString &publicId, const QString &systemId) override
virtual bool startDocument() override
virtual bool startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts) override
virtual bool startEntity(const QString &name) override
virtual bool startPrefixMapping(const QString &prefix, const QString &uri) override
virtual bool unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName) override
virtual bool warning(const QXmlParseException &exception) override

Descripción detallada

Esta clase reúne las características de las clases especializadas de controladores, lo que la convierte en un punto de partida práctico a la hora de implementar controladores personalizados para subclases de QXmlReader, en particular QXmlSimpleReader. Las funciones virtuales de cada una de las clases base se reimplementan en esta clase, proporcionando un comportamiento por defecto sensible para muchos casos comunes. Subclasificando esta clase, y sobreescribiendo estas funciones, puedes concentrarte en implementar las partes del manejador relevantes para tu aplicación.

El lector XML debe saber qué manejador utilizar para los diferentes tipos de eventos durante el análisis. Esto significa que, aunque QXmlDefaultHandler proporciona implementaciones por defecto de funciones heredadas de todas sus clases base, podemos utilizar manejadores especializados para determinados tipos de eventos.

Por ejemplo, QXmlDefaultHandler subclasea tanto QXmlContentHandler como QXmlErrorHandler, por lo que al subclasificarla podemos utilizar el mismo manejador para ambas funciones de lectura:

    xmlReader.setContentHandler(handler);
    xmlReader.setErrorHandler(handler);

Dado que el lector informará al manejador de los errores de análisis sintáctico, es necesario reimplementar QXmlErrorHandler::fatalError() si, por ejemplo, queremos detener el análisis sintáctico cuando se produzca un error de este tipo:

bool Handler::fatalError(const QXmlParseException & excepción){
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", columna"<< exception.columnNumber()<< ':'<< exception.message(); return false; }

La función anterior devuelve false, que indica al lector que deje de analizar. Para seguir utilizando el mismo lector, es necesario crear una nueva instancia de manejador, y configurar el lector para que lo utilice de la forma descrita anteriormente.

Es útil examinar algunas de las funciones heredadas por QXmlDefaultHandler, y considerar por qué podrían ser reimplementadas en un manejador personalizado. Los manejadores personalizados suelen reimplementar QXmlContentHandler::startDocument() para preparar el manejador para nuevo contenido. Los elementos del documento y el texto que contienen pueden procesarse reimplementando QXmlContentHandler::startElement(), QXmlContentHandler::endElement() y QXmlContentHandler::characters(). Es posible que desee volver a implementar QXmlContentHandler::endDocument() para realizar alguna finalización o validación en el contenido una vez que el documento ha sido leído por completo.

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

Documentación de las funciones miembro

QXmlDefaultHandler::QXmlDefaultHandler()

Construye un manejador para su uso con subclases de QXmlReader.

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

Destruye el manejador.

[override virtual] bool QXmlDefaultHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)

Reimplementa: QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::characters(const QString &ch)

Reimplementa: QXmlContentHandler::characters(const QString &ch).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::comment(const QString &ch)

Reimplementa: QXmlLexicalHandler::comment(const QString &ch).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endCDATA()

Reimplementa: QXmlLexicalHandler::endCDATA().

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endDTD()

Reimplementa: QXmlLexicalHandler::endDTD().

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endDocument()

Reimplementa: QXmlContentHandler::endDocument().

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)

Reimplementa: QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endEntity(const QString &name)

Reimplementa: QXmlLexicalHandler::endEntity(const QString &nombre).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)

Reimplementa: QXmlContentHandler::endPrefixMapping(const QString &prefix).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::error(const QXmlParseException &exception)

Reimplementa: QXmlErrorHandler::error(const QXmlParseException &exception).

Esta reimplementación no hace nada.

[override virtual] QString QXmlDefaultHandler::errorString() const

Reimplementa: QXmlContentHandler::errorString() const.

Devuelve la cadena de error por defecto.

[override virtual] bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)

Reimplementa: QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)

Reimplementa: QXmlErrorHandler::fatalError(const QXmlParseException &exception).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)

Reimplementa: QXmlContentHandler::ignorableWhitespace(const QString &ch).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)

Reimplementa: QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)

Reimplementa: QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)

Reimplementa: QXmlContentHandler::processingInstruction(const QString &target, const QString &data).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)

Reimplementa: QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret).

Establece ret a nullptr, para que el lector utilice el identificador de sistema proporcionado en el documento XML.

[override virtual] void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)

Reimplementa: QXmlContentHandler::setDocumentLocator(QXmlLocator *locator).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::skippedEntity(const QString &name)

Reimplementa: QXmlContentHandler::skippedEntity(const QString &nombre).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::startCDATA()

Reimplementa: QXmlLexicalHandler::startCDATA().

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)

Reimplementa: QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::startDocument()

Reimplementa: QXmlContentHandler::startDocument().

Esta reimplementación no hace nada.

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

Reimplementa: QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::startEntity(const QString &name)

Reimplementa: QXmlLexicalHandler::startEntity(const QString &nombre).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)

Reimplementa: QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName)

Reimplementa: QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString &notationName).

Esta reimplementación no hace nada.

[override virtual] bool QXmlDefaultHandler::warning(const QXmlParseException &exception)

Reimplementa: QXmlErrorHandler::warning(const QXmlParseException &exception).

Esta reimplementación no hace nada.

© 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.