QXmlContentHandler Class
Die Klasse QXmlContentHandler bietet eine Schnittstelle zur Meldung des logischen Inhalts von XML-Daten. Mehr...
Kopfzeile: | #include <QXmlContentHandler> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
Vererbt von: |
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
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 |
Detaillierte Beschreibung
Wenn die Anwendung über grundlegende Parsing-Ereignisse informiert werden muss, kann sie diese Schnittstelle implementieren und sie mit QXmlReader::setContentHandler() aktivieren. Der Reader kann dann grundlegende dokumentbezogene Ereignisse wie den Beginn und das Ende von Elementen und Zeichendaten über diese Schnittstelle melden.
Die Reihenfolge der Ereignisse in dieser Schnittstelle ist sehr wichtig und spiegelt die Reihenfolge der Informationen im Dokument selbst wider. Zum Beispiel erscheint der gesamte Inhalt eines Elements (Zeichendaten, Verarbeitungsanweisungen und Unterelemente) in der Reihenfolge zwischen dem Ereignis startElement() und dem entsprechenden Ereignis endElement().
Die Klasse QXmlDefaultHandler bietet eine Standardimplementierung für diese Schnittstelle; eine Unterklassifizierung von der Klasse QXmlDefaultHandler ist sehr praktisch, wenn Sie nur über einige Parsing-Ereignisse informiert werden möchten.
Die Funktion startDocument() wird am Anfang des Dokuments aufgerufen, endDocument() am Ende. Bevor das Parsen beginnt, wird setDocumentLocator() aufgerufen. Für jedes Element wird startElement() aufgerufen, wobei endElement() am Ende eines jeden Elements aufgerufen wird. Die Funktion characters() wird mit Stücken von Zeichendaten aufgerufen; ignorableWhitespace() wird mit Stücken von Leerzeichen aufgerufen und processingInstruction() wird mit Verarbeitungsanweisungen aufgerufen. Wenn eine Entität übersprungen wird, wird skippedEntity() aufgerufen. Am Anfang von Präfix-URI-Bereichen wird startPrefixMapping() aufgerufen.
Siehe auch QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, und QXmlLexicalHandler.
Dokumentation der Mitgliedsfunktionen
[virtual noexcept]
QXmlContentHandler::~QXmlContentHandler()
Zerstört den Content-Handler.
[pure virtual]
bool QXmlContentHandler::characters(const QString &ch)
Der Leser ruft diese Funktion auf, wenn er ein Stück Zeichendaten geparst hat (entweder normale Zeichendaten oder Zeichendaten innerhalb eines CDATA-Abschnitts; wenn Sie zwischen diesen beiden Typen unterscheiden müssen, müssen Sie QXmlLexicalHandler::startCDATA() und QXmlLexicalHandler::endCDATA() verwenden). Die Zeichendaten werden in ch gemeldet.
Einige Lesegeräte melden Leerzeichen in Elementinhalten mit der Funktion ignorableWhitespace() statt mit dieser Funktion.
Ein Lesegerät kann die Zeichendaten eines Elements in mehr als einem Chunk melden; z.B. könnte ein Lesegerät "a<b" in drei Zeichen()-Ereignissen ("a ", "<" und " b") melden wollen.
Wenn diese Funktion false
zurückgibt, bricht das Lesegerät das Parsen ab und meldet einen Fehler. Das Lesegerät verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
[pure virtual]
bool QXmlContentHandler::endDocument()
Der Leser ruft diese Funktion auf, nachdem er das Parsen beendet hat. Sie wird nur einmal aufgerufen und ist die letzte aufgerufene Handler-Funktion. Sie wird aufgerufen, nachdem das Lesegerät alle Eingaben gelesen oder das Parsen aufgrund eines schwerwiegenden Fehlers abgebrochen hat.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch startDocument().
[pure virtual]
bool QXmlContentHandler::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
Der Leser ruft diese Funktion auf, wenn er ein Endelement-Tag mit dem qualifizierten Namen qName, dem lokalen Namen localName und dem Namespace-URI namespaceURI geparst hat.
Wenn diese Funktion false
zurückgibt, bricht das Lesegerät das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch startElement().
[pure virtual]
bool QXmlContentHandler::endPrefixMapping(const QString &prefix)
Der Leser ruft diese Funktion auf, um das Ende einer Präfixzuordnung für das Präfix prefix zu signalisieren.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch startPrefixMapping().
[pure virtual]
QString QXmlContentHandler::errorString() const
Der Leser ruft diese Funktion auf, um einen Fehlerstring zu erhalten, z.B. wenn eine der Handlerfunktionen false
zurückgibt.
[pure virtual]
bool QXmlContentHandler::ignorableWhitespace(const QString &ch)
Einige Leser können diese Funktion verwenden, um jedes Stück Leerraum im Elementinhalt zu melden. Der Whitespace wird in ch gemeldet.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
[pure virtual]
bool QXmlContentHandler::processingInstruction(const QString &target, const QString &data)
Der Leser ruft diese Funktion auf, wenn er eine Verarbeitungsanweisung geparst hat.
target ist der Zielname der Verarbeitungsanweisung und data sind die Daten der Verarbeitungsanweisung.
Wenn diese Funktion false
zurückgibt, bricht das Lesegerät das Parsen ab und meldet einen Fehler. Das Lesegerät verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
[pure virtual]
void QXmlContentHandler::setDocumentLocator(QXmlLocator *locator)
Der Leser ruft diese Funktion auf, bevor er mit dem Parsen des Dokuments beginnt. Das Argument locator ist ein Zeiger auf einen QXmlLocator, der es der Anwendung ermöglicht, die Parsing-Position innerhalb des Dokuments zu ermitteln.
Zerstören Sie die locator nicht; sie wird zerstört, wenn das Lesegerät zerstört wird. (Verwenden Sie locator nicht mehr, nachdem der Reader zerstört wurde).
[pure virtual]
bool QXmlContentHandler::skippedEntity(const QString &name)
Einige Leser können Entitäten überspringen, wenn sie die Deklarationen nicht gesehen haben (z. B. weil sie in einer externen DTD stehen). In diesem Fall melden sie, dass sie die Entität mit der Bezeichnung name durch Aufruf dieser Funktion übersprungen haben.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
[pure virtual]
bool QXmlContentHandler::startDocument()
Der Leser ruft diese Funktion auf, wenn er mit dem Parsen des Dokuments beginnt. Der Leser ruft diese Funktion nur einmal auf, und zwar nach dem Aufruf von setDocumentLocator() und bevor andere Funktionen in dieser Klasse oder in der Klasse QXmlDTDHandler aufgerufen werden.
Wenn diese Funktion false
zurückgibt, bricht das Lesegerät das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch endDocument().
[pure virtual]
bool QXmlContentHandler::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
Der Leser ruft diese Funktion auf, wenn er ein Startelement-Tag geparst hat.
Es gibt einen entsprechenden endElement()-Aufruf, wenn das entsprechende Endelement-Tag gelesen wird. Die Aufrufe startElement() und endElement() sind immer korrekt verschachtelt. Leere Element-Tags (z. B. <x/>
) führen dazu, dass auf einen startElement()-Aufruf unmittelbar ein endElement()-Aufruf folgt.
Die mitgelieferte Attributliste enthält nur Attribute mit expliziten Werten. Die Attributliste enthält nur dann Attribute, die für die Namespace-Deklaration verwendet werden (d.h. Attribute, die mit xmlns beginnen), wenn die Namespace-Prefix-Eigenschaft des Readers true ist.
Das Argument namespaceURI ist der Namespace-URI oder eine leere Zeichenkette, wenn das Element keinen Namespace-URI hat oder wenn keine Namespace-Verarbeitung durchgeführt wird. localName ist der lokale Name (ohne Präfix) oder eine leere Zeichenkette, wenn keine Namespace-Verarbeitung durchgeführt wird, qName ist der qualifizierte Name (mit Präfix) und atts sind die mit dem Element verbundenen Attribute. Wenn keine Attribute vorhanden sind, ist atts ein leeres Attributobjekt.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch endElement().
[pure virtual]
bool QXmlContentHandler::startPrefixMapping(const QString &prefix, const QString &uri)
Der Reader ruft diese Funktion auf, um den Beginn eines Präfix-URI-Namensraum-Zuordnungsbereichs zu signalisieren. Diese Information ist für die normale Namespace-Verarbeitung nicht erforderlich, da der Reader automatisch Präfixe für Element- und Attributnamen ersetzt.
Beachten Sie, dass startPrefixMapping() und endPrefixMapping()-Aufrufe nicht garantiert sind, dass sie korrekt ineinander verschachtelt sind: alle startPrefixMapping()-Ereignisse treten vor dem entsprechenden startElement()-Ereignis auf, und alle endPrefixMapping()-Ereignisse treten nach dem entsprechenden endElement()-Ereignis auf, aber ihre Reihenfolge ist ansonsten nicht garantiert.
Das Argument prefix ist das zu deklarierende Namespace-Präfix und das Argument uri ist der Namespace-URI, auf den das Präfix abgebildet wird.
Wenn diese Funktion false
zurückgibt, bricht der Leser das Parsen ab und meldet einen Fehler. Der Leser verwendet die Funktion errorString(), um die Fehlermeldung zu erhalten.
Siehe auch endPrefixMapping().
© 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.