QXmlNamespaceSupport Class
La classe QXmlNamespaceSupport est une classe d'aide pour les lecteurs XML qui souhaitent inclure la prise en charge des espaces de noms. Plus d'informations...
| En-tête : | #include <QXmlNamespaceSupport> |
| 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
| QXmlNamespaceSupport() | |
| ~QXmlNamespaceSupport() | |
| void | popContext() |
| QString | prefix(const QString &uri) const |
| QStringList | prefixes() const |
| QStringList | prefixes(const QString &uri) const |
| void | processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const |
| void | pushContext() |
| void | reset() |
| void | setPrefix(const QString &pre, const QString &uri) |
| void | splitName(const QString &qname, QString &prefix, QString &localname) const |
| QString | uri(const QString &prefix) const |
Description détaillée
Vous pouvez définir le préfixe de l'espace de noms actuel avec setPrefix(), et obtenir la liste des préfixes actuels (ou ceux d'un URI donné) avec prefixes(). L'URI de l'espace de noms est disponible à partir de uri(). Utilisez pushContext() pour démarrer un nouveau contexte d'espace de noms, et popContext() pour revenir au contexte d'espace de noms précédent. Utilisez splitName() ou processName() pour diviser un nom en son préfixe et son nom local.
Documentation des fonctions membres
QXmlNamespaceSupport::QXmlNamespaceSupport()
Construit un QXmlNamespaceSupport.
[noexcept] QXmlNamespaceSupport::~QXmlNamespaceSupport()
Détruit un QXmlNamespaceSupport.
void QXmlNamespaceSupport::popContext()
Reprend le contexte de l'espace de noms précédent.
Normalement, vous devriez faire sortir le contexte à la fin de chaque élément XML. Après l'ouverture du contexte, tous les mappages de préfixes d'espaces de noms qui étaient précédemment en vigueur sont rétablis.
Voir aussi pushContext().
QString QXmlNamespaceSupport::prefix(const QString &uri) const
Renvoie l'un des préfixes associés à l'URI de l'espace de noms uri.
Si plusieurs préfixes sont actuellement associés au même URI, cette fonction effectue une sélection arbitraire ; si vous souhaitez obtenir tous les préfixes, utilisez plutôt la fonction prefixes().
Remarque : pour vérifier la présence d'un préfixe par défaut, utilisez la fonction uri() avec un argument "".
Voir aussi setPrefix().
QStringList QXmlNamespaceSupport::prefixes() const
Renvoie une liste de tous les préfixes actuellement déclarés.
S'il existe un préfixe par défaut, cette fonction ne le renvoie pas dans la liste ; vérifiez la présence du préfixe par défaut en utilisant uri() avec un argument "".
QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const
Renvoie une liste de tous les préfixes actuellement déclarés pour l'espace de noms URI uri.
Le préfixe "xml :" est inclus. Si vous ne souhaitez qu'un seul préfixe correspondant à l'URI de l'espace de noms, et que vous ne vous souciez pas de celui que vous obtenez, utilisez plutôt la fonction prefix().
Remarque : le préfixe vide (par défaut) n'est jamais inclus dans cette liste ; pour vérifier la présence d'un espace de noms par défaut, appelez uri() avec "" comme argument.
Il s'agit d'une fonction surchargée.
void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
Traite un nom XML 1.0 brut dans le contexte actuel en supprimant le préfixe et en le recherchant parmi les préfixes actuellement déclarés.
qname est le nom XML 1.0 brut à traiter. isAttribute est vrai si le nom est un nom d'attribut.
Cette fonction stocke l'URI de l'espace de noms dans nsuri (qui sera mis à une chaîne vide si le nom brut a un préfixe non déclaré), et stocke le nom local (sans préfixe) dans localname (qui sera mis à une chaîne vide si aucun espace de noms n'est en cours d'utilisation).
Notez que les noms d'attributs sont traités différemment des noms d'éléments : un nom d'élément sans préfixe obtient l'espace de noms par défaut (s'il y en a un), alors qu'un nom d'attribut sans préfixe ne l'obtient pas.
void QXmlNamespaceSupport::pushContext()
Démarre un nouveau contexte d'espace de noms.
Normalement, vous devriez pousser un nouveau contexte au début de chaque élément XML : le nouveau contexte hérite automatiquement des déclarations de son contexte parent, et il garde également la trace des déclarations qui ont été faites dans ce contexte.
Voir aussi popContext().
void QXmlNamespaceSupport::reset()
Réinitialise cet objet de support de l'espace de noms pour qu'il soit prêt à être réutilisé.
void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)
Cette fonction déclare qu'un préfixe pre dans le contexte actuel de l'espace de noms est l'URI de l'espace de noms uri. Le préfixe reste en vigueur jusqu'à ce que ce contexte soit supprimé, à moins qu'il ne soit remplacé par un contexte descendant.
Notez qu'il y a une asymétrie dans cette bibliothèque. prefix() ne renvoie pas le préfixe "" par défaut, même si vous en avez déclaré un ; pour vérifier la présence d'un préfixe par défaut, vous devez le rechercher explicitement en utilisant uri(). Cette asymétrie a pour but de faciliter la recherche des préfixes pour les noms d'attributs, pour lesquels le préfixe par défaut n'est pas autorisé.
Voir aussi prefix().
void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const
Divise le nom qname au niveau du ':' et renvoie le préfixe dans prefix et le nom local dans localname.
Voir aussi processName().
QString QXmlNamespaceSupport::uri(const QString &prefix) const
Recherche le préfixe prefix dans le contexte actuel et renvoie l'URI de l'espace de noms actuellement mappé. Utilisez la chaîne vide ("") pour l'espace de noms par défaut.
© 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.