QXmlContentHandler Class
La classe QXmlContentHandler fournit une interface pour signaler le contenu logique des données XML. Plus d'informations...
| En-tête : | #include <QXmlContentHandler> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core5Compat)target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake : | QT += core5compat |
| Inherited By : |
Note : 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 a besoin d'être informée des événements de base de l'analyse syntaxique, elle peut implémenter cette interface et l'activer à l'aide de QXmlReader::setContentHandler(). Le lecteur peut alors signaler les é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, par l'intermédiaire de cette interface.
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 endElement() correspondant.
La classe QXmlDefaultHandler fournit une implémentation par défaut de cette interface ; la sous-classe de la classe QXmlDefaultHandler est très pratique si vous ne voulez être informé que de certains événements d'analyse.
La fonction startDocument() est appelée au début du document, et endDocument() à la fin. Avant le début de l'analyse syntaxique, la fonction setDocumentLocator() est appelée. Pour chaque élément, la fonction startElement() est appelée, et la fonction endElement() est appelée à la fin de chaque élément. La fonction characters() est appelée avec des morceaux de données de caractères ; ignorableWhitespace() est appelée avec des morceaux d'espaces blancs et processingInstruction() est appelée avec des instructions de traitement. Si une entité est ignorée, la fonction skippedEntity() est appelée. Au début de la portée du préfixe-URI, startPrefixMapping() est appelé.
Voir aussi QXmlDTDHandler, QXmlDeclHandler, QXmlEntityResolver, QXmlErrorHandler, et QXmlLexicalHandler.
Documentation des fonctions membres
[virtual noexcept] QXmlContentHandler::~QXmlContentHandler()
Détruit le gestionnaire de contenu.
[pure virtual] bool QXmlContentHandler::characters(const QString &ch)
Le lecteur appelle cette fonction lorsqu'il a analysé un morceau de données de caractères (soit des données de caractères normales, soit des données de caractères à l'intérieur d'une section CDATA ; si vous devez faire la distinction entre ces deux types de données, vous devez utiliser QXmlLexicalHandler::startCDATA() et QXmlLexicalHandler::endCDATA()). Les données de caractère sont signalées à l'adresse ch.
Certains lecteurs signalent les espaces blancs dans le contenu des éléments en utilisant la fonction ignorableWhitespace() plutôt que celle-ci.
Un lecteur peut rapporter les données de caractère d'un élément en plusieurs morceaux ; par exemple, un lecteur peut vouloir rapporter "a<b" en trois événements characters() ("a", "<" et "b").
Si cette fonction renvoie false, le lecteur arrête 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 après avoir terminé l'analyse. Elle n'est appelée qu'une seule fois et est la dernière fonction de traitement appelée. Elle est appelée après que le lecteur a lu toutes les entrées ou a abandonné l'analyse à cause d'une erreur fatale.
Si cette fonction renvoie false, le lecteur arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.
Voir aussi 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 avec le nom qualifié qName, le nom local localName et l'URI de l'espace de noms namespaceURI.
Si cette fonction renvoie false, le lecteur arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.
Voir aussi startElement().
[pure virtual] bool QXmlContentHandler::endPrefixMapping(const QString &prefix)
Le lecteur appelle cette fonction pour signaler la fin d'un mappage de préfixes pour le préfixe prefix.
Si cette fonction renvoie false, le lecteur arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.
Voir aussi 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 traitement renvoie false.
[pure virtual] bool QXmlContentHandler::ignorableWhitespace(const QString &ch)
Certains lecteurs peuvent utiliser cette fonction pour signaler chaque espace blanc dans le contenu d'un élément. Les espaces blancs sont signalés à l'adresse ch.
Si cette fonction renvoie false, le lecteur arrête 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 cible de l'instruction de traitement et data est la donnée contenue dans l'instruction de traitement.
Si cette fonction renvoie false, le lecteur arrête 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 à analyser le document. L'argument locator est un pointeur vers un QXmlLocator qui permet à l'application d'obtenir la position d'analyse dans le document.
Ne détruisez pas le locator; il est détruit lorsque le lecteur est détruit. (Ne pas utiliser locator après la destruction du lecteur).
[pure virtual] bool QXmlContentHandler::skippedEntity(const QString &name)
Certains lecteurs peuvent sauter des entités s'ils n'ont pas vu les déclarations (par exemple, parce qu'elles se trouvent dans une DTD externe). Dans ce cas, ils signalent qu'ils ont sauté l'entité appelée name en appelant cette fonction.
Si cette fonction renvoie false, le lecteur arrête 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. Le lecteur n'appelle cette fonction qu'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 arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.
Voir aussi 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 de début d'élément.
Il y a un appel correspondant à endElement() lorsque la balise de fin d'élément correspondante est lue. Les appels startElement() et endElement() sont toujours imbriqués correctement. Les balises d'élément vides (par exemple <x/>) entraînent un appel à startElement() immédiatement suivi d'un appel à endElement().
La liste d'attributs fournie ne contient que des attributs avec des valeurs explicites. La liste d'attributs contient des attributs utilisés pour la déclaration de l'espace de noms (c'est-à-dire des attributs commençant par xmlns) uniquement si la propriété namespace-prefix du lecteur est vraie.
L'argument namespaceURI est l'URI de l'espace de noms, ou une chaîne vide si l'élément n'a pas d'URI d'espace de noms ou si aucun traitement de l'espace de noms n'est effectué. localName est le nom local (sans préfixe), ou une chaîne vide si aucun traitement de l'espace de noms n'est effectué, qName est le nom qualifié (avec préfixe) et atts sont les attributs attaché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 arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir 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'un champ d'application de mappage d'espace de noms préfixe-URI. Cette information n'est pas nécessaire pour le traitement normal de l'espace de noms puisque le lecteur remplace automatiquement les préfixes pour les noms d'éléments et d'attributs.
Notez que les appels startPrefixMapping() et endPrefixMapping() ne sont pas garantis d'être 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 par ailleurs.
L'argument prefix est le préfixe d'espace de noms déclaré et l'argument uri est l'URI d'espace de noms auquel le préfixe est mappé.
Si cette fonction renvoie false, le lecteur arrête l'analyse et signale une erreur. Le lecteur utilise la fonction errorString() pour obtenir le message d'erreur.
Voir aussi 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.