Sur cette page

QXmlContentHandler Class

La classe QXmlContentHandler fournit une interface permettant de décrire le contenu logique des données XML. En savoir plus...

En-tête : #include <QXmlContentHandler>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake : QT += core5compat
Hérité par :

QXmlDefaultHandler

Remarque : toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

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

Description détaillée

Si l'application doit être informée des événements d'analyse de base, elle peut implémenter cette interface et l'activer à l'aide de la méthode ` QXmlReader::setContentHandler()`. Le lecteur peut alors signaler, via cette interface, des événements de base liés au document, tels que le début et la fin des éléments et des données de caractères.

L'ordre des événements dans cette interface est très important et reflète l'ordre des informations dans le document lui-même. Par exemple, tout le contenu d'un élément (données de caractères, instructions de traitement et sous-éléments) apparaît, dans l'ordre, entre l'événement ` startElement()` et l'événement correspondant ` endElement()`.

La classe ` QXmlDefaultHandler ` fournit une implémentation par défaut de cette interface ; créer une sous-classe de la classe ` QXmlDefaultHandler ` est très pratique si vous souhaitez uniquement être informé de certains événements d’analyse.

La fonction ` startDocument()` est appelée au début du document, et ` endDocument()` est appelée à la fin. Avant le début de l'analyse, la fonction ` setDocumentLocator()` est appelée. Pour chaque élément, la méthode ` startElement()` est appelée, tandis que la méthode ` endElement()` est appelée à la fin de chaque élément. La fonction ` characters()` est appelée pour les blocs de données de caractères ; la méthode ` ignorableWhitespace()` est appelée pour les blocs d’espaces blancs et la méthode ` processingInstruction()` est appelée pour les instructions de traitement. Si une entité est ignorée, la méthode ` skippedEntity()` est appelée. Au début des portées d’URI préfixées, la méthode ` startPrefixMapping()` est appelée.

Voir également QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler et QXmlLexicalHandler.

Documentation sur les fonctions membres

[virtual noexcept] QXmlContentHandler::~QXmlContentHandler()

Supprime le gestionnaire de contenu.

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

Le lecteur appelle cette fonction lorsqu'il a analysé un bloc de données de caractères (qu'il s'agisse de données de caractères normales ou de données de caractères situées dans une section CDATA ; si vous devez faire la distinction entre ces deux types, vous devez utiliser les fonctions QXmlLexicalHandler::startCDATA() et QXmlLexicalHandler::endCDATA()). Les données de caractères sont renvoyées dans la variable ch.

Certains lecteurs signalent les espaces dans le contenu d’un élément à l’aide de la fonction ignorableWhitespace() plutôt qu’à l’aide de celle-ci.

Un lecteur peut signaler les données de caractères d’un élément en plusieurs blocs ; par exemple, un lecteur peut souhaiter signaler « a<b » dans trois événements characters() (« a », « < » et « b »).

Si cette fonction renvoie false, le lecteur interrompt l’analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d’erreur.

[pure virtual] bool QXmlContentHandler::endDocument()

Le lecteur appelle cette fonction une fois l'analyse terminée. Elle n'est appelée qu'une seule fois et constitue la dernière fonction de gestion appelée. Elle est appelée après que le lecteur a lu l'intégralité des données d'entrée ou a interrompu l'analyse en raison d'une erreur fatale.

Si cette fonction renvoie ` false `, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction ` errorString()` pour obtenir le message d'erreur.

Voir également startDocument().

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

Le lecteur appelle cette fonction lorsqu'il a analysé une balise de fin d'élément dont le nom qualifié est qName, le nom local localName et l'URI d'espace de noms namespaceURI.

Si cette fonction renvoie false, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.

Voir également startElement().

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

Le lecteur appelle cette fonction pour signaler la fin d'un mappage de préfixe pour le préfixe prefix.

Si cette fonction renvoie false, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour récupérer le message d'erreur.

Voir également startPrefixMapping().

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

Le lecteur appelle cette fonction pour obtenir une chaîne d'erreur, par exemple si l'une des fonctions de gestion renvoie « false ».

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

Certains lecteurs peuvent utiliser cette fonction pour signaler chaque bloc d'espaces dans le contenu d'un élément. Les espaces sont signalés sous la forme ch.

Si cette fonction renvoie « false », le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.

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

Le lecteur appelle cette fonction lorsqu'il a analysé une instruction de traitement.

target est le nom de la cible de l’instruction de traitement et data correspond aux données contenues dans cette instruction.

Si cette fonction renvoie ` false `, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction ` errorString()` pour obtenir le message d'erreur.

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

Le lecteur appelle cette fonction avant de commencer l'analyse du document. L'argument locator est un pointeur vers un objet QXmlLocator, qui permet à l'application d'obtenir la position d'analyse au sein du document.

Ne détruisez pas l’ locator; celui-ci est détruit lorsque le lecteur est détruit. (N’utilisez pas l’ locator une fois que le lecteur a été détruit).

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

Certains lecteurs peuvent ignorer des entités s'ils n'ont pas vu les déclarations (par exemple, parce qu'elles se trouvent dans une DTD externe). S'ils le font, ils signalent qu'ils ont ignoré l'entité appelée « name » en appelant cette fonction.

Si cette fonction renvoie « false », le lecteur interrompt l’analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d’erreur.

[pure virtual] bool QXmlContentHandler::startDocument()

Le lecteur appelle cette fonction lorsqu'il commence à analyser le document. Il l'appelle une seule fois, après l'appel à ` setDocumentLocator()` et avant que toute autre fonction de cette classe ou de la classe ` QXmlDTDHandler ` ne soit appelée.

Si cette fonction renvoie false, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour récupérer le message d'erreur.

Voir également endDocument().

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

Le lecteur appelle cette fonction lorsqu'il a analysé une balise d'élément de début.

Un appel correspondant à ` endElement()` est effectué lorsque la balise de fin d’élément correspondante est lue. Les appels à `startElement()` et ` endElement()` sont toujours correctement imbriqués. Les balises d’élément vides (par exemple ` <x/>`) entraînent qu’un appel à `startElement()` soit immédiatement suivi d’un appel à ` endElement()`.

La liste d’attributs fournie ne contient que les attributs dotés de valeurs explicites. La liste d’attributs ne contient les attributs utilisés pour la déclaration d’espace de noms (c’est-à-dire les attributs commençant par xmlns) que si la propriété namespace-prefix du lecteur est définie sur true.

L’argument « namespaceURI » correspond à l’URI de l’espace de noms, ou à une chaîne vide si l’élément ne possède pas d’URI d’espace de noms ou si aucun traitement d’espace de noms n’est effectué. « localName » correspond au nom local (sans préfixe), ou à une chaîne vide si aucun traitement d’espace de noms n’est effectué ; « qName » correspond au nom qualifié (avec préfixe) et « atts » correspond aux attributs associés à l’élément. S’il n’y a pas d’attributs, ` atts ` est un objet d’attributs vide.

Si cette fonction renvoie false, le lecteur interrompt l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour récupérer le message d'erreur.

Voir également endElement().

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

Le lecteur appelle cette fonction pour signaler le début d'une portée de mappage entre préfixe et espace de noms URI. Cette information n'est pas nécessaire pour le traitement normal des espaces de noms, car le lecteur remplace automatiquement les préfixes des noms d'éléments et d'attributs.

Notez qu’il n’est pas garanti que les appels à `startPrefixMapping()` et ` endPrefixMapping()` soient correctement imbriqués les uns par rapport aux autres : tous les événements `startPrefixMapping()` se produisent avant l’événement ` startElement()` correspondant, et tous les événements ` endPrefixMapping()` se produisent après l’événement ` endElement()` correspondant, mais leur ordre n’est pas garanti au-delà de cela.

L’argument ` prefix ` correspond au préfixe d’espace de noms en cours de déclaration et l’argument ` uri ` correspond à l’URI d’espace de noms auquel ce préfixe est mappé.

Si cette fonction renvoie false, le lecteur interrompt l’analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d’erreur.

Voir également 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.