QXmlNamespaceSupport Class
Die Klasse „QXmlNamespaceSupport“ ist eine Hilfsklasse für XML-Leser, die Unterstützung für Namensräume integrieren möchten. Mehr...
| Header: | #include <QXmlNamespaceSupport> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake: | QT += core5compat |
Hinweis: Alle Funktionen 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 |
Ausführliche Beschreibung
Mit ` setPrefix()` können Sie das Präfix für den aktuellen Namensraum festlegen und mit ` prefixes()` die Liste der aktuellen Präfixe (oder derjenigen für eine bestimmte URI) abrufen. Die Namensraum-URI ist über ` uri()` verfügbar. Verwenden Sie ` pushContext()`, um einen neuen Namensraumkontext zu starten, und ` popContext()`, um zum vorherigen Namensraumkontext zurückzukehren. Verwenden Sie „ splitName “ () oder „ processName “ (), um einen Namen in sein Präfix und seinen lokalen Namen aufzuteilen.
Dokumentation zu Mitgliedsfunktionen
QXmlNamespaceSupport::QXmlNamespaceSupport()
Erstellt ein `QXmlNamespaceSupport`-Objekt.
[noexcept] QXmlNamespaceSupport::~QXmlNamespaceSupport()
Löscht ein „ QXmlNamespaceSupport “.
void QXmlNamespaceSupport::popContext()
Kehrt zum vorherigen Namespace-Kontext zurück.
Normalerweise sollten Sie den Kontext am Ende jedes XML-Elements entfernen. Nach dem Entfernen des Kontexts werden alle zuvor geltenden Namespace-Präfix-Zuordnungen wiederhergestellt.
Siehe auch ` pushContext()`.
QString QXmlNamespaceSupport::prefix(const QString &uri) const
Gibt eines der Präfixe zurück, die der Namensraum-URI uri zugeordnet sind.
Wenn derzeit mehrere Präfixe derselben URI zugeordnet sind, trifft diese Funktion eine willkürliche Auswahl; wenn Sie alle Präfixe erhalten möchten, verwenden Sie stattdessen prefixes().
Hinweis: Um nach einem Standardpräfix zu suchen, verwenden Sie die Funktion ` uri()` mit dem Argument „“.
Siehe auch setPrefix().
QStringList QXmlNamespaceSupport::prefixes() const
Gibt eine Liste aller derzeit deklarierten Präfixe zurück.
Wenn ein Standardpräfix vorhanden ist, gibt diese Funktion es nicht in der Liste zurück; überprüfen Sie das Standardpräfix mit ` uri()` und dem Argument „“.
QStringList QXmlNamespaceSupport::prefixes(const QString &uri) const
Gibt eine Liste aller Präfixe zurück, die derzeit für die Namespace-URI uri deklariert sind.
Das Präfix „xml:“ ist enthalten. Wenn Sie nur ein Präfix wünschen, das der Namensraum-URI zugeordnet ist, und es Ihnen egal ist, welches Sie erhalten, verwenden Sie stattdessen die Funktion prefix().
Hinweis: Das leere (Standard-)Präfix ist niemals in dieser Liste enthalten; um zu prüfen, ob ein Standard-Namensraum vorhanden ist, rufen Sie uri() mit „“ als Argument auf.
Dies ist eine überladene Funktion.
void QXmlNamespaceSupport::processName(const QString &qname, bool isAttribute, QString &nsuri, QString &localname) const
Verarbeitet einen XML 1.0-Rohnamen im aktuellen Kontext, indem das Präfix entfernt und der Name unter den aktuell deklarierten Präfixen gesucht wird.
qname ist der zu verarbeitende XML 1.0-Rohname. „ isAttribute “ ist wahr, wenn es sich bei dem Namen um einen Attributnamen handelt.
Diese Funktion speichert die Namespace-URI in ` nsuri ` (die auf eine leere Zeichenkette gesetzt wird, wenn der Rohname ein nicht deklariertes Präfix hat) und speichert den lokalen Namen (ohne Präfix) in ` localname ` (die auf eine leere Zeichenkette gesetzt wird, wenn kein Namespace verwendet wird).
Beachten Sie, dass Attributnamen anders verarbeitet werden als Elementnamen: Ein Elementname ohne Präfix erhält den Standard-Namespace (sofern vorhanden), ein Attributname ohne Präfix hingegen nicht.
void QXmlNamespaceSupport::pushContext()
Eröffnet einen neuen Namespace-Kontext.
Normalerweise sollten Sie am Anfang jedes XML-Elements einen neuen Kontext einfügen: Der neue Kontext erbt automatisch die Deklarationen seines übergeordneten Kontexts und protokolliert zudem, welche Deklarationen innerhalb dieses Kontexts vorgenommen wurden.
Siehe auch ` popContext()`.
void QXmlNamespaceSupport::reset()
Setzt dieses Namespace-Unterstützungsobjekt zurück, sodass es wiederverwendet werden kann.
void QXmlNamespaceSupport::setPrefix(const QString &pre, const QString &uri)
Diese Funktion deklariert ein Präfix „ pre “ im aktuellen Namensraumkontext als die Namensraum-URI „ uri “. Das Präfix bleibt so lange gültig, bis dieser Kontext entfernt wird, es sei denn, es wird in einem untergeordneten Kontext überschrieben.
Beachten Sie, dass in dieser Bibliothek eine Asymmetrie besteht. ` prefix()` gibt nicht das Standardpräfix „“ zurück, selbst wenn Sie eines deklariert haben; um nach einem Standardpräfix zu suchen, müssen Sie es explizit mit ` uri()` abfragen. Diese Asymmetrie dient dazu, die Suche nach Präfixen für Attributnamen zu vereinfachen, bei denen das Standardpräfix nicht zulässig ist.
Siehe auch prefix().
void QXmlNamespaceSupport::splitName(const QString &qname, QString &prefix, QString &localname) const
Teilt den Namen qname am „:“ auf und gibt das Präfix in prefix sowie den lokalen Namen in localname zurück.
Siehe auch processName().
QString QXmlNamespaceSupport::uri(const QString &prefix) const
Sucht im aktuellen Kontext nach dem Präfix „ prefix “ und gibt die derzeit zugeordnete Namespace-URI zurück. Verwenden Sie die leere Zeichenfolge („“) für den Standard-Namespace.
© 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.