QXmlInputSource Class
La classe QXmlInputSource fournit les données d'entrée pour les sous-classes QXmlReader. Plus d'informations...
| En-tête : | #include <QXmlInputSource> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core5Compat)target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake : | QT += core5compat |
Note : 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 le codage des données en lisant la déclaration de codage dans le fichier XML, si elle en trouve une, et en lisant les données à l'aide du codage correspondant. Si elle ne trouve pas de déclaration d'encodage, elle suppose 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 y a deux façons de remplir la source d'entrée avec des données : vous pouvez la construire avec un QIODevice* pour que la source d'entrée lise les données à partir de ce périphérique. Ou vous pouvez définir les données explicitement avec l'une des fonctions setData().
En général, vous construisez un QXmlInputSource qui fonctionne avec un QIODevice* ou vous construisez un QXmlInputSource vide et définissez les données avec setData(). Il n'y a que de rares occasions où vous voudrez mélanger les deux méthodes.
Les sous-classes QXmlReader utilisent la fonction next() pour lire l'entrée caractère par caractère. Si vous voulez recommencer depuis le début, utilisez reset().
Les fonctions data() et fetchData() sont utiles si vous voulez faire autre chose avec les données que de les analyser, par exemple afficher le fichier XML brut. L'avantage d'utiliser la classe QXmlInputClass dans ce cas est qu'elle essaie d'utiliser le bon encodage.
Voir également QXmlReader et QXmlSimpleReader.
Documentation des fonctions membres
QXmlInputSource::QXmlInputSource()
Construit une source d'entrée qui ne contient aucune donnée.
Voir aussi setData().
[explicit] QXmlInputSource::QXmlInputSource(QIODevice *dev)
Construit une source d'entrée et obtient les données du périphérique dev. Si dev n'est pas ouvert, il est ouvert en mode lecture seule. Si dev vaut 0 ou s'il n'est pas possible de lire les données du 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 que la source d'entrée contient ou une chaîne vide si la source d'entrée ne contient pas de données.
Voir aussi setData(), QXmlInputSource() et fetchData().
[virtual] void QXmlInputSource::fetchData()
Cette fonction lit davantage de données dans le dispositif qui a été défini lors de la construction. 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 un appel à cette fonction si l'objet a été construit sans périphérique pour lire les données ou si cette fonction n'a pas été en mesure d'obtenir plus de données du périphérique.
Il y a deux occasions où une récupération est faite implicitement par un autre appel de fonction : pendant la construction (pour que l'objet commence avec quelques données initiales si elles sont disponibles), et pendant un appel à next() (si les données ont été é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 data et tente de reconnaître le codage. Elle convertit les données brutes data en QString et les renvoie. Elle fait de son mieux pour obtenir le bon encodage pour le fichier XML.
Si beginning est vrai, cette fonction suppose que les données commencent au début d'un nouveau document XML et recherche une déclaration de codage. Si beginning est faux, elle convertit les données brutes en utilisant le codage déterminé par les 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() après cela, elle essaie d'obtenir plus 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 la fonction this 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 aussi reset(), fetchData(), QXmlSimpleReader::parse(), et QXmlSimpleReader::parseContinue().
[virtual] void QXmlInputSource::reset()
Cette fonction définit la position utilisée par next() au début des données renvoyées par data(). Cette fonction est utile si vous souhaitez utiliser la source d'entrée pour plus d'une analyse.
Note : Dans le cas où la source de données sous-jacente est un QIODevice, la position actuelle dans le périphérique n'est pas automatiquement fixée au début de l'entrée. Appelez QIODevice::seek(0) sur le périphérique pour le faire.
Voir aussi next().
[virtual] void QXmlInputSource::setData(const QString &dat)
Définit les données de la source d'entrée à dat.
Si la source d'entrée contient déjà des données, cette fonction supprime d'abord ces données.
Voir aussi data().
[virtual] void QXmlInputSource::setData(const QByteArray &dat)
Les données dat sont passées par le codec texte correct avant d'être définies.
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.