Auf dieser Seite

QXmlContentHandler Class

Die Klasse „QXmlContentHandler“ bietet eine Schnittstelle zur Darstellung 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 an:

QXmlDefaultHandler

Hinweis: Alle Funktionen 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

Ausführliche Beschreibung

Wenn die Anwendung über grundlegende Parsing-Ereignisse informiert werden soll, kann sie diese Schnittstelle implementieren und mithilfe von ` QXmlReader::setContentHandler()` aktivieren. Der Reader kann dann über diese Schnittstelle grundlegende dokumentbezogene Ereignisse wie den Beginn und das Ende von Elementen sowie Zeichendaten melden.

Die Reihenfolge der Ereignisse in dieser Schnittstelle ist sehr wichtig und spiegelt die Reihenfolge der Informationen im Dokument selbst wider. Beispielsweise erscheint der gesamte Inhalt eines Elements (Zeichendaten, Verarbeitungsanweisungen und Unterelemente) der Reihe nach zwischen dem Ereignis „ startElement()“ und dem entsprechenden Ereignis „ endElement()“.

Die Klasse ` QXmlDefaultHandler ` bietet eine Standardimplementierung für diese Schnittstelle; eine Unterklasse der Klasse ` QXmlDefaultHandler ` zu erstellen, ist sehr praktisch, wenn Sie nur über bestimmte Parsing-Ereignisse informiert werden möchten.

Die Funktion ` startDocument()` wird zu Beginn des Dokuments aufgerufen, und ` endDocument()` wird am Ende aufgerufen. Bevor das Parsen beginnt, wird ` setDocumentLocator()` aufgerufen. Für jedes Element wird ` startElement()` aufgerufen, während ` endElement()` am Ende jedes Elements aufgerufen wird. Die Funktion ` characters()` wird für Blöcke von Zeichendaten aufgerufen; ` ignorableWhitespace()` wird für Blöcke von Leerzeichen aufgerufen und ` processingInstruction()` für Verarbeitungsanweisungen. Wird eine Entität übersprungen, wird ` skippedEntity()` aufgerufen. Am Anfang von Präfix-URI-Bereichen wird ` startPrefixMapping()` aufgerufen.

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

Dokumentation zu den Member-Funktionen

[virtual noexcept] QXmlContentHandler::~QXmlContentHandler()

Löscht den Content-Handler.

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

Der Reader ruft diese Funktion auf, wenn er einen Block von Zeichendaten analysiert hat (entweder normale Zeichendaten oder Zeichendaten innerhalb eines CDATA-Abschnitts; wenn Sie zwischen diesen beiden Typen unterscheiden müssen, müssen Sie die Funktionen ` QXmlLexicalHandler::startCDATA()` und ` QXmlLexicalHandler::endCDATA()` verwenden). Die Zeichendaten werden in ` ch` zurückgegeben.

Einige Reader melden Leerzeichen im Elementinhalt mithilfe der Funktion ` ignorableWhitespace()` anstelle dieser Funktion.

Ein Reader kann die Zeichendaten eines Elements in mehr als einem Chunk melden; z. B. könnte ein Reader „a<b“ in drei characters()-Ereignissen („a “, „<“ und „ b“) melden.

Wenn diese Funktion ` false ` zurückgibt, bricht der Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion ` errorString()` (Fehler melden), um die Fehlermeldung abzurufen.

[pure virtual] bool QXmlContentHandler::endDocument()

Der Reader ruft diese Funktion auf, nachdem er das Parsen abgeschlossen hat. Sie wird nur einmal aufgerufen und ist die letzte aufgerufene Handler-Funktion. Der Aufruf erfolgt, nachdem der Reader die gesamte Eingabe gelesen hat oder das Parsen aufgrund eines schwerwiegenden Fehlers abgebrochen hat.

Wenn diese Funktion ` false ` zurückgibt, bricht der Reader das Parsen ab und meldet einen Fehler. Der Reader verwendet die Funktion ` errorString()` um die Fehlermeldung abzurufen.

Siehe auch ` startDocument()`.

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

Der Reader ruft diese Funktion auf, wenn er ein Endelement-Tag mit dem qualifizierten Namen qName, dem lokalen Namen localName und der Namespace-URI namespaceURI geparst hat.

Wenn diese Funktion „ false “ zurückgibt, bricht der Reader das Parsen ab und meldet einen Fehler. Der Reader verwendet die Funktion „ errorString()“, um die Fehlermeldung abzurufen.

Siehe auch „ startElement()“.

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

Der Reader 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 Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion ` errorString()` , um die Fehlermeldung abzurufen.

Siehe auch ` startPrefixMapping()`.

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

Der Leser ruft diese Funktion auf, um eine Fehlermeldung abzurufen, z. B. wenn eine der Handler-Funktionen „ false “ zurückgibt.

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

Manche Reader verwenden diese Funktion möglicherweise, um jeden Block von Leerzeichen im Inhalt eines Elements zu melden. Die Leerzeichen werden in „ ch “ gemeldet.

Wenn diese Funktion „ false “ zurückgibt, bricht der Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion „ errorString()“, um die Fehlermeldung abzurufen.

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

Der Leser ruft diese Funktion auf, sobald er eine Verarbeitungsanweisung geparst hat.

target ist der Zielname der Verarbeitungsanweisung und ` data ` sind die Daten in der Verarbeitungsanweisung.

Wenn diese Funktion ` false ` zurückgibt, bricht der Reader das Parsen ab und meldet einen Fehler. Der Reader verwendet die Funktion ` errorString()` um die Fehlermeldung abzurufen.

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

Der Reader ruft diese Funktion auf, bevor er mit dem Parsen des Dokuments beginnt. Das Argument „ locator “ ist ein Zeiger auf ein „ QXmlLocator “, über das die Anwendung die Parsposition innerhalb des Dokuments abrufen kann.

Zerstören Sie das ` locator` nicht; es wird zerstört, wenn der Reader zerstört wird. (Verwenden Sie das ` locator ` nicht, nachdem der Reader zerstört wurde.)

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

Manche Reader überspringen möglicherweise Entitäten, wenn sie die Deklarationen nicht gesehen haben (z. B. weil sie sich in einer externen DTD befinden). In diesem Fall melden sie durch Aufruf dieser Funktion, dass sie die Entität „ name “ übersprungen haben.

Wenn diese Funktion „ false “ zurückgibt, bricht der Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion „ errorString()“, um die Fehlermeldung abzurufen.

[pure virtual] bool QXmlContentHandler::startDocument()

Der Reader ruft diese Funktion auf, wenn er mit dem Parsen des Dokuments beginnt. Der Reader ruft diese Funktion nur einmal auf, und zwar nach dem Aufruf von ` setDocumentLocator()` und bevor andere Funktionen dieser Klasse oder der Klasse ` QXmlDTDHandler ` aufgerufen werden.

Wenn diese Funktion ` false ` zurückgibt, bricht der Reader das Parsen ab und meldet einen Fehler. Der Reader verwendet die Funktion ` errorString()` zum Abrufen der Fehlermeldung.

Siehe auch ` endDocument()`.

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

Der Reader ruft diese Funktion auf, wenn er ein Start-Element-Tag geparst hat.

Es gibt einen entsprechenden Aufruf von ` endElement()` beim Einlesen des entsprechenden End-Element-Tags. Die Aufrufe von `startElement()` und ` endElement()` sind stets korrekt verschachtelt. Leere Element-Tags (z. B. ` <x/>`) bewirken, dass auf einen Aufruf von `startElement()` unmittelbar ein Aufruf von ` endElement()` folgt.

Die bereitgestellte Attributliste enthält nur Attribute mit expliziten Werten. Die Attributliste enthält Attribute, die zur Namespace-Deklaration verwendet werden (d. h. Attribute, die mit „xmlns“ beginnen), nur wenn die Eigenschaft „namespace-prefix“ des Readers auf „true“ gesetzt ist.

Das Argument „ namespaceURI “ ist die Namespace-URI oder eine leere Zeichenkette, wenn das Element keine Namespace-URI hat oder 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 dem Element zugeordneten Attribute. Wenn keine Attribute vorhanden sind, ist atts ein leeres Attributobjekt.

Gibt diese Funktion „ false “ zurück, bricht der Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion „ errorString()“, um die Fehlermeldung abzurufen.

Siehe auch „ endElement()“.

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

Der Reader ruft diese Funktion auf, um den Beginn eines Gültigkeitsbereichs für die Zuordnung von Präfix-URIs zu Namensräumen zu signalisieren. Diese Information ist für die normale Namensraumverarbeitung nicht erforderlich, da der Reader Präfixe für Element- und Attributnamen automatisch ersetzt.

Beachten Sie, dass nicht garantiert ist, dass Aufrufe von `startPrefixMapping()` und ` endPrefixMapping()` korrekt relativ zueinander verschachtelt sind: Alle `startPrefixMapping()`-Ereignisse finden vor dem entsprechenden ` startElement()`-Ereignis statt, und alle ` endPrefixMapping()`-Ereignisse finden nach dem entsprechenden ` endElement()`-Ereignis statt, aber ihre Reihenfolge ist ansonsten nicht garantiert.

Das Argument ` prefix ` ist das zu deklarierende Namespace-Präfix und das Argument ` uri ` ist die Namespace-URI, auf die das Präfix abgebildet wird.

Wenn diese Funktion „ false “ zurückgibt, bricht der Reader die Analyse ab und meldet einen Fehler. Der Reader verwendet die Funktion „ errorString()“, um die Fehlermeldung abzurufen.

Siehe auch „ 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.