QXmlInputSource Class
La classe `QXmlInputSource` fournit les données d'entrée aux sous-classes de ` QXmlReader `. En savoir plus...
| En-tête : | #include <QXmlInputSource> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake : | QT += core5compat |
Remarque : toutes les fonctions de cette classe sont réentrantes.
Fonctions publiques
| QXmlInputSource() | |
| QXmlInputSource(QIODevice *dev) | |
| virtual | ~QXmlInputSource() |
| virtual QString | data() const |
| virtual void | fetchData() |
| virtual QChar | next() |
| virtual void | reset() |
| virtual void | setData(const QString &dat) |
| virtual void | setData(const QByteArray &dat) |
Fonctions protégées
| virtual QString | fromRawData(const QByteArray &data, bool beginning = false) |
Description détaillée
Toutes les sous-classes de QXmlReader lisent le document XML d'entrée à partir de cette classe.
Cette classe reconnaît l’encodage des données en lisant la déclaration d’encodage dans le fichier XML si elle en trouve une, puis en lisant les données à l’aide de l’encodage correspondant. Si elle ne trouve pas de déclaration d’encodage, elle suppose alors que les données sont soit en UTF-8, soit en UTF-16, selon qu’elle trouve ou non une marque d’ordre des octets.
Il existe deux façons de remplir la source d’entrée avec des données : vous pouvez la créer à partir d’un objet ` QIODevice*` afin que la source d’entrée lise les données à partir de ce périphérique. Vous pouvez également définir les données explicitement à l’aide de l’une des fonctions ` setData()`.
En général, soit vous créez un objet `QXmlInputSource` fonctionnant sur un ` QIODevice*`, soit vous créez un objet `QXmlInputSource` vide et vous définissez les données à l'aide de ` setData()`. Il est très rare que vous souhaitiez combiner ces deux méthodes.
Les sous-classes de QXmlReader utilisent la fonction next() pour lire les données caractère par caractère. Si vous souhaitez recommencer depuis le début, utilisez reset().
Les fonctions data() et fetchData() sont utiles si vous souhaitez effectuer une opération sur les données autre que l’analyse, par exemple afficher le fichier XML brut. L’avantage d’utiliser la classe QXmlInputClass dans de tels cas est qu’elle tente d’utiliser l’encodage correct.
Voir également QXmlReader et QXmlSimpleReader.
Documentation des fonctions membres
QXmlInputSource::QXmlInputSource()
Crée une source d'entrée ne contenant aucune donnée.
Voir aussi setData().
[explicit] QXmlInputSource::QXmlInputSource(QIODevice *dev)
Crée une source d'entrée et récupère les données à partir du périphérique dev. Si dev n'est pas ouvert, il est ouvert en mode lecture seule. Si dev est égal à 0 ou s'il est impossible de lire depuis le périphérique, la source d'entrée ne contiendra aucune donnée.
Voir également setData(), fetchData() et QIODevice.
[virtual noexcept] QXmlInputSource::~QXmlInputSource()
Destructeur.
[virtual] QString QXmlInputSource::data() const
Renvoie les données contenues dans la source d'entrée ou une chaîne vide si celle-ci ne contient aucune donnée.
Voir également setData(), QXmlInputSource() et fetchData().
[virtual] void QXmlInputSource::fetchData()
Cette fonction lit des données supplémentaires à partir du périphérique défini lors de la création de l'objet. Si la source d'entrée contenait déjà des données, cette fonction supprime d'abord ces données.
Cet objet ne contient aucune donnée après l'appel de cette fonction si l'objet a été créé sans périphérique à partir duquel lire des données ou si cette fonction n'a pas pu récupérer davantage de données depuis le périphérique.
Une récupération est effectuée implicitement par un autre appel de fonction dans deux cas : lors de la construction (afin que l’objet dispose dès le départ de données initiales, le cas échéant), et lors d’un appel à ` next()` (si les données étaient épuisées).
Vous n’avez normalement pas besoin d’utiliser cette fonction si vous utilisez ` next()`.
Voir également data(), next() et QXmlInputSource().
[virtual protected] QString QXmlInputSource::fromRawData(const QByteArray &data, bool beginning = false)
Cette fonction lit le fichier XML à partir de l'adresse data et tente d'identifier son encodage. Elle convertit les données brutes data en un format QString et le renvoie. Elle fait tout son possible pour déterminer l'encodage correct du fichier XML.
Si beginning est vrai, cette fonction part du principe que les données commencent au début d’un nouveau document XML et recherche une déclaration d’encodage. Si beginning est faux, elle convertit les données brutes en utilisant l’encodage déterminé lors des appels précédents.
[virtual] QChar QXmlInputSource::next()
Renvoie le caractère suivant de la source d’entrée. Si cette fonction atteint la fin des données disponibles, elle renvoie QXmlInputSource::EndOfData. Si vous appelez next() par la suite, elle tente de récupérer davantage de données en appelant fetchData(). Si l'appel à fetchData() aboutit à de nouvelles données, cette fonction renvoie le premier caractère de ces données ; sinon, elle renvoie QXmlInputSource::EndOfDocument.
Les lecteurs, tels que ` QXmlSimpleReader`, supposeront que la fin du document XML a été atteinte si cette fonction renvoie `QXmlInputSource::EndOfDocument`, et vérifieront que l’entrée fournie est bien formée. Par conséquent, lors de la réimplémentation de cette fonction, il est important de s’assurer que ce comportement est reproduit.
Voir également reset(), fetchData(), QXmlSimpleReader::parse() et QXmlSimpleReader::parseContinue().
[virtual] void QXmlInputSource::reset()
Cette fonction définit la position utilisée par la fonction next() au début des données renvoyées par la fonction data(). Cela s'avère utile si vous souhaitez utiliser la source d'entrée pour plusieurs analyses.
Remarque : si la source de données sous-jacente est un QIODevice, la position courante dans le périphérique n’est pas automatiquement définie au début de l’entrée. Appelez QIODevice::seek(0) sur le périphérique pour effectuer cette opération.
Voir également next().
[virtual] void QXmlInputSource::setData(const QString &dat)
Définit les données de la source d'entrée sur dat.
Si la source d'entrée contient déjà des données, cette fonction supprime d'abord ces données.
Voir également data().
[virtual] void QXmlInputSource::setData(const QByteArray &dat)
L'dat e de données est traitée par le codec de texte approprié avant d'être définie.
Il s'agit d'une fonction surchargée.
© 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.