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: | QXmlContentHandler, QXmlErrorHandler, QXmlDTDHandler, QXmlEntityResolver, QXmlLexicalHandler, und QXmlDeclHandler |
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
QXmlDefaultHandler() | |
virtual | ~QXmlDefaultHandler() |
Reimplementierte ö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 ¬ationName) override |
virtual bool | warning(const QXmlParseException &exception) override |
Detaillierte Beschreibung
Diese Klasse fasst die Funktionen der spezialisierten Handler-Klassen zusammen und ist damit ein praktischer Ausgangspunkt für die Implementierung benutzerdefinierter Handler für Unterklassen von QXmlReader, insbesondere QXmlSimpleReader. Die virtuellen Funktionen der einzelnen Basisklassen werden in dieser Klasse neu implementiert, so dass ein sinnvolles Standardverhalten für viele gängige Fälle zur Verfügung steht. Indem Sie diese Klasse unterklassifizieren 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 die verschiedenen Arten von Ereignissen während des Parsens zu verwenden ist. Das bedeutet, dass QXmlDefaultHandler zwar Standardimplementierungen von Funktionen bereitstellt, die von allen seinen Basisklassen geerbt wurden, wir aber dennoch spezielle Handler für bestimmte Arten von Ereignissen verwenden können.
QXmlDefaultHandler ist zum Beispiel eine Unterklasse von QXmlContentHandler und QXmlErrorHandler, so dass wir durch Unterklassifizierung denselben Handler für beide der folgenden Leserfunktionen verwenden können:
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 z.B. das Parsing beim Auftreten eines solchen Fehlers beenden wollen:
bool Handler::fatalError(const QXmlParseException & Ausnahme){ qWarning() << "Fatal error on line" << exception.lineNumber() << ", Spalte"<< exception.columnNumber()<< ':'<< exception.message(); return false; }
Die obige Funktion gibt false
zurück, was dem Leser mitteilt, dass er das Parsen beenden soll. Um denselben Reader weiter zu verwenden, muss eine neue Handler-Instanz erstellt und der Reader so eingerichtet werden, dass er sie auf die oben beschriebene Weise verwendet.
Es ist sinnvoll, einige der von QXmlDefaultHandler geerbten Funktionen zu untersuchen und zu überlegen, warum sie in einem eigenen Handler neu implementiert werden könnten. Benutzerdefinierte Handler werden typischerweise QXmlContentHandler::startDocument() reimplementieren, um den Handler auf neue Inhalte vorzubereiten. Dokumentelemente und der darin enthaltene Text können durch Neuimplementierung von QXmlContentHandler::startElement(), QXmlContentHandler::endElement() und QXmlContentHandler::characters() verarbeitet werden. Möglicherweise möchten Sie QXmlContentHandler::endDocument() neu implementieren, um den Inhalt abzuschließen oder zu validieren, sobald das Dokument vollständig gelesen wurde.
Siehe auch QXmlDTDHandler, QXmlDeclHandler, QXmlContentHandler, QXmlEntityResolver, QXmlErrorHandler, und QXmlLexicalHandler.
Dokumentation der Mitgliedsfunktionen
QXmlDefaultHandler::QXmlDefaultHandler()
Konstruiert einen Handler zur Verwendung mit Unterklassen von QXmlReader.
[virtual noexcept]
QXmlDefaultHandler::~QXmlDefaultHandler()
Zerstört den Handler.
[override virtual]
bool QXmlDefaultHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value)
Reimplements: QXmlDeclHandler::attributeDecl(const QString &eName, const QString &aName, const QString &type, const QString &valueDefault, const QString &value).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::characters(const QString &ch)
Reimplements: QXmlContentHandler::characters(const QString &ch).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::comment(const QString &ch)
Reimplements: QXmlLexicalHandler::comment(const QString &ch).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endCDATA()
Reimplements: QXmlLexicalHandler::endCDATA().
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endDTD()
Reimplements: QXmlLexicalHandler::endDTD().
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endDocument()
Reimplements: QXmlContentHandler::endDocument().
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Reimplements: QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName).
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endEntity(const QString &name)
Reimplements: QXmlLexicalHandler::endEntity(const QString &name).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::endPrefixMapping(const QString &prefix)
Reimplements: QXmlContentHandler::endPrefixMapping(const QString &prefix).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::error(const QXmlParseException &exception)
Reimplements: QXmlErrorHandler::error(const QXmlParseException &exception).
Diese Reimplementierung bewirkt nichts.
[override virtual]
QString QXmlDefaultHandler::errorString() const
Reimplements: QXmlContentHandler::errorString() const.
Gibt die Standard-Fehlerzeichenfolge zurück.
[override virtual]
bool QXmlDefaultHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId)
Reimplements: QXmlDeclHandler::externalEntityDecl(const QString &name, const QString &publicId, const QString &systemId).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::fatalError(const QXmlParseException &exception)
Reimplements: QXmlErrorHandler::fatalError(const QXmlParseException &exception).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::ignorableWhitespace(const QString &ch)
Reimplements: QXmlContentHandler::ignorableWhitespace(const QString &ch).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::internalEntityDecl(const QString &name, const QString &value)
Reimplements: QXmlDeclHandler::internalEntityDecl(const QString &name, const QString &value).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId)
Reimplements: QXmlDTDHandler::notationDecl(const QString &name, const QString &publicId, const QString &systemId).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::processingInstruction(const QString &target, const QString &data)
Reimplements: QXmlContentHandler::processingInstruction(const QString &target, const QString &data).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret)
Reimplements: QXmlEntityResolver::resolveEntity(const QString &publicId, const QString &systemId, QXmlInputSource *&ret).
Setzt ret auf nullptr
, so dass der Reader den im XML-Dokument angegebenen Systemidentifikator verwendet.
[override virtual]
void QXmlDefaultHandler::setDocumentLocator(QXmlLocator *locator)
Reimplements: QXmlContentHandler::setDocumentLocator(QXmlLocator *locator).
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::skippedEntity(const QString &name)
Reimplements: QXmlContentHandler::skippedEntity(const QString &name).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startCDATA()
Reimplements: QXmlLexicalHandler::startCDATA().
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId)
Reimplements: QXmlLexicalHandler::startDTD(const QString &name, const QString &publicId, const QString &systemId).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startDocument()
Reimplements: QXmlContentHandler::startDocument().
Diese Neuimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Reimplements: QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startEntity(const QString &name)
Reimplements: QXmlLexicalHandler::startEntity(const QString &name).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::startPrefixMapping(const QString &prefix, const QString &uri)
Reimplements: QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName)
Reimplements: QXmlDTDHandler::unparsedEntityDecl(const QString &name, const QString &publicId, const QString &systemId, const QString ¬ationName).
Diese Reimplementierung bewirkt nichts.
[override virtual]
bool QXmlDefaultHandler::warning(const QXmlParseException &exception)
Reimplements: QXmlErrorHandler::warning(const QXmlParseException &exception).
Diese Reimplementierung bewirkt nichts.
© 2025 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.