Auf dieser Seite

QXmlDefaultHandler Class

Die Klasse „QXmlDefaultHandler“ bietet eine Standardimplementierung aller XML-Handler-Klassen. Mehr...

Kopfzeile: #include <QXmlDefaultHandler>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
Erbt von:QXmlContentHandler, „ QXmlErrorHandler “, „ QXmlDTDHandler “, „ QXmlEntityResolver “, „ QXmlLexicalHandler “ und QXmlDeclHandler

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Funktionen

Neu implementierte öffentliche Funktionen

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

Ausführliche Beschreibung

Diese Klasse vereint die Funktionen der spezialisierten Handler-Klassen und dient somit als praktischer Ausgangspunkt für die Implementierung benutzerdefinierter Handler für Unterklassen von ` QXmlReader`, insbesondere von ` QXmlSimpleReader`. Die virtuellen Funktionen der jeweiligen Basisklassen werden in dieser Klasse neu implementiert und bieten ein sinnvolles Standardverhalten für viele gängige Fälle. Indem Sie diese Klasse untervererben und diese Funktionen überschreiben, können Sie sich auf die Implementierung der für Ihre Anwendung relevanten Teile des Handlers konzentrieren.

Dem XML-Reader muss mitgeteilt werden, welcher Handler für verschiedene Arten von Ereignissen während der Analyse verwendet werden soll. Das bedeutet, dass wir, obwohl `QXmlDefaultHandler` Standardimplementierungen der von allen Basisklassen geerbten Funktionen bereitstellt, dennoch spezialisierte Handler für bestimmte Arten von Ereignissen verwenden können.

Beispielsweise ist `QXmlDefaultHandler` sowohl eine Unterklasse von ` QXmlContentHandler ` als auch von ` QXmlErrorHandler`. Durch die Erstellung einer Unterklasse davon können wir daher denselben Handler für die beiden folgenden Reader-Funktionen verwenden:

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

Da der Reader den Handler über Parsing-Fehler informiert, ist es notwendig, ` QXmlErrorHandler::fatalError()` neu zu implementieren, wenn wir beispielsweise das Parsing beenden möchten, sobald ein solcher Fehler auftritt:

bool Handler::fatalError (const QXmlParseException& exception)
{
    qWarning() << "Fatal error on line" << exception.lineNumber()
              << ", Spalte" << exception.columnNumber() << ':'
               << exception.message();

    return false;
}

Die obige Funktion gibt ` false` zurück, was dem Reader signalisiert, das Parsen zu beenden. Um denselben Reader weiterhin zu verwenden, muss eine neue Handler-Instanz erstellt und der Reader so konfiguriert werden, dass er diese wie oben beschrieben nutzt.

Es ist hilfreich, einige der von `QXmlDefaultHandler` geerbten Funktionen zu untersuchen und zu überlegen, warum sie in einem benutzerdefinierten Handler neu implementiert werden könnten. Benutzerdefinierte Handler implementieren in der Regel ` QXmlContentHandler::startDocument()` neu, um den Handler auf neue Inhalte vorzubereiten. Dokumentelemente und der darin enthaltene Text können durch die Neuimplementierung von ` QXmlContentHandler::startElement()`, ` QXmlContentHandler::endElement()` und ` QXmlContentHandler::characters()` verarbeitet werden. Möglicherweise möchten Sie ` QXmlContentHandler::endDocument()` neu implementieren, um nach dem vollständigen Einlesen des Dokuments abschließende Maßnahmen oder eine Validierung des Inhalts durchzuführen.

Siehe auch QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler und QXmlLexicalHandler.

Dokumentation zu Member-Funktionen

QXmlDefaultHandler::QXmlDefaultHandler()

Erstellt einen Handler zur Verwendung mit Unterklassen von ` QXmlReader`.

[virtual noexcept] QXmlDefaultHandler::~QXmlDefaultHandler()

Löscht den Handler.

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

Implementiert neu: ` QXmlDeclHandler::attributeDecl` (`const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value`).

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::characters(const QString &ch)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlLexicalHandler::comment(const QString &ch)`.

Diese Neuimplementierung führt keine Aktion aus.

[override virtual] bool QXmlDefaultHandler::endCDATA()

Implementiert neu: ` QXmlLexicalHandler::endCDATA()`.

Diese Neuimplementierung führt keine Aktion aus.

[override virtual] bool QXmlDefaultHandler::endDTD()

Implementiert neu: ` QXmlLexicalHandler::endDTD()`.

Diese Neuimplementierung führt keine Aktion aus.

[override virtual] bool QXmlDefaultHandler::endDocument()

Implementiert neu: ` QXmlContentHandler::endDocument()`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::endElement` (const QString &namespaceURI, const QString &localName, const QString &qName).

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlLexicalHandler::endEntity(const QString &name)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::endPrefixMapping(const QString &prefix)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlErrorHandler::error(const QXmlParseException &exception)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::errorString()` const.

Gibt die Standard-Fehlerzeichenfolge zurück.

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

Implementiert neu: ` QXmlDeclHandler::externalEntityDecl` (const QString &name, const QString &publicId, const QString &systemId).

Diese Neuimplementierung führt keine Aktion aus.

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

Umsetzt: ` QXmlErrorHandler::fatalError(const QXmlParseException &exception)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::ignorableWhitespace(const QString &ch)`.

Diese Neuimplementierung führt keine Aktion aus.

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

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

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlDTDHandler::notationDecl` (const QString &name, const QString &publicId, const QString &systemId).

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::processingInstruction(const QString &target, const QString &data)`.

Diese Neuimplementierung führt keine Aktion aus.

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

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

Setzt ` ret ` auf ` nullptr`, sodass der Reader die im XML-Dokument angegebene Systemkennung verwendet.

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

Implementiert neu: ` QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::skippedEntity(const QString &name)`.

Diese Neuimplementierung führt keine Aktion aus.

[override virtual] bool QXmlDefaultHandler::startCDATA()

Implementiert neu: QXmlLexicalHandler::startCDATA().

Diese Neuimplementierung führt keine Aktion aus.

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

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

Diese Neuimplementierung führt keine Aktion aus.

[override virtual] bool QXmlDefaultHandler::startDocument()

Implementiert neu: ` QXmlContentHandler::startDocument()`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::startElement` (const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts).

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlLexicalHandler::startEntity(const QString &name)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)`.

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert neu: ` QXmlDTDHandler::unparsedEntityDecl` (const QString &name, const QString &publicId, const QString &systemId, const QString &notationName).

Diese Neuimplementierung führt keine Aktion aus.

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

Implementiert: ` QXmlErrorHandler::warning(const QXmlParseException &exception)`.

Diese Neuimplementierung führt keine Aktion aus.

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