QXmlNamespaceSupport Class
Die Klasse QXmlNamespaceSupport ist eine Hilfsklasse für XML-Reader, die Namespace-Unterstützung bieten wollen. Mehr...
Kopfzeile: | #include <QXmlNamespaceSupport> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake: | QT += core5compat |
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Funktionen
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 |
Detaillierte Beschreibung
Sie können den Präfix für den aktuellen Namensraum mit setPrefix() setzen und die Liste der aktuellen Präfixe (oder die für einen bestimmten URI) mit prefixes() abrufen. Die Namespace-URI ist über uri() verfügbar. Verwenden Sie pushContext(), um einen neuen Namespace-Kontext zu starten, und popContext(), um zum vorherigen Namespace-Kontext zurückzukehren. Verwenden Sie splitName() oder processName(), um einen Namen in sein Präfix und seinen lokalen Namen aufzuteilen.
Dokumentation der Mitgliedsfunktionen
QXmlNamespaceSupport::QXmlNamespaceSupport()
Konstruiert einen QXmlNamespaceSupport.
[noexcept]
QXmlNamespaceSupport::~QXmlNamespaceSupport()
Zerstört eine QXmlNamespaceSupport.
void QXmlNamespaceSupport::popContext()
Stellt den vorherigen Namespace-Kontext wieder her.
Normalerweise sollten Sie den Kontext am Ende eines jeden XML-Elements auflösen. Nach dem Aufheben des Kontexts werden alle zuvor gültigen Namespace-Präfix-Zuordnungen wiederhergestellt.
Siehe auch pushContext().
QString QXmlNamespaceSupport::prefix(const QString &uri) const
Gibt eines der Präfixe zurück, die dem Namespace URI uri zugeordnet sind.
Wenn mehr als ein Präfix demselben URI zugeordnet ist, trifft diese Funktion eine willkürliche Auswahl; wenn Sie alle Präfixe wünschen, verwenden Sie stattdessen prefixes().
Hinweis: Um nach einem Standard-Präfix zu suchen, verwenden Sie die Funktion uri() mit einem Argument von "".
Siehe auch setPrefix().
QStringList QXmlNamespaceSupport::prefixes() const
Gibt eine Liste aller derzeit deklarierten Präfixe zurück.
Wenn es ein Standardpräfix gibt, gibt diese Funktion es nicht in der Liste zurück; überprüfen Sie das Standardpräfix mit uri() mit einem Argument von "".
QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const
Dies ist eine überladene Funktion.
Gibt eine Liste aller Präfixe zurück, die derzeit für den Namespace URI uri deklariert sind.
Das Präfix "xml:" ist enthalten. Wenn Sie nur ein Präfix benötigen, das auf den Namensraum-URI abgebildet wird, und es Ihnen egal ist, welches Sie erhalten, verwenden Sie stattdessen die Funktion prefix().
Hinweis: Das leere (Standard-)Präfix wird nie in diese Liste aufgenommen; um zu prüfen, ob ein Standard-Namensraum vorhanden ist, rufen Sie uri() mit "" als Argument auf.
void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
Verarbeitet einen rohen XML 1.0-Namen im aktuellen Kontext, indem das Präfix entfernt und unter den derzeit deklarierten Präfixen nachgeschlagen wird.
qname ist der rohe XML 1.0-Name, der verarbeitet werden soll. isAttribute ist wahr, wenn der Name ein Attributname ist.
Diese Funktion speichert den Namespace-URI in nsuri (der auf eine leere Zeichenkette gesetzt wird, wenn der rohe Name ein nicht deklariertes Präfix hat) und speichert den lokalen Namen (ohne Präfix) in localname (der auf eine leere Zeichenkette gesetzt wird, wenn kein Namespace in Gebrauch ist).
Beachten Sie, dass Attributnamen anders verarbeitet werden als Elementnamen: Ein Elementname ohne Präfix erhält den Standard-Namensraum (falls vorhanden), während ein Attributname ohne Präfix nicht verwendet wird.
void QXmlNamespaceSupport::pushContext()
Startet einen neuen Namespace-Kontext.
Normalerweise sollten Sie einen neuen Kontext an den Anfang jedes XML-Elements schieben: Der neue Kontext erbt automatisch die Deklarationen seines übergeordneten Kontexts und merkt sich auch, welche Deklarationen innerhalb dieses Kontexts gemacht wurden.
Siehe auch popContext().
void QXmlNamespaceSupport::reset()
Setzt dieses Namespace-Support-Objekt für die Wiederverwendung zurück.
void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)
Diese Funktion erklärt ein Präfix pre im aktuellen Namespace-Kontext zum Namespace-URI uri. Das Präfix bleibt in Kraft, bis dieser Kontext gelöscht wird, es sei denn, es wird in einem Nachfolgekontext überschattet.
Beachten Sie, dass es in dieser Bibliothek eine Asymmetrie gibt. prefix() gibt nicht den Standardpräfix "" zurück, auch wenn Sie einen deklariert haben; um einen Standardpräfix zu finden, müssen Sie ihn explizit mit uri() nachschlagen. Diese Asymmetrie besteht, um das Nachschlagen von Präfixen für Attributnamen zu erleichtern, bei denen das Standardpräfix nicht erlaubt ist.
Siehe auch prefix().
void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const
Teilt den Namen qname am ':' und gibt das Präfix in prefix und den lokalen Namen in localname zurück.
Siehe auch processName().
QString QXmlNamespaceSupport::uri(const QString &prefix) const
Sucht nach dem Präfix prefix im aktuellen Kontext und gibt den aktuell zugeordneten Namespace-URI zurück. Verwenden Sie die leere Zeichenkette ("") für den Standard-Namespace.
© 2025 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.