Auf dieser Seite

QDomElement Class

Die Klasse „QDomElement“ repräsentiert ein Element im DOM-Baum. Mehr...

Kopfzeile: #include <QDomElement>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml
Erbt von: QDomNode

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

Öffentliche Funktionen

QDomElement()
QDomElement(const QDomElement &element)
QString attribute(const QString &name, const QString &defValue = QString()) const
QString attributeNS(const QString &nsURI, const QString &localName, const QString &defValue = QString()) const
QDomAttr attributeNode(const QString &name)
QDomAttr attributeNodeNS(const QString &nsURI, const QString &localName)
QDomNamedNodeMap attributes() const
QDomNodeList elementsByTagName(const QString &tagname) const
QDomNodeList elementsByTagNameNS(const QString &nsURI, const QString &localName) const
bool hasAttribute(const QString &name) const
bool hasAttributeNS(const QString &nsURI, const QString &localName) const
QDomNode::NodeType nodeType() const
void removeAttribute(const QString &name)
void removeAttributeNS(const QString &nsURI, const QString &localName)
QDomAttr removeAttributeNode(const QDomAttr &oldAttr)
void setAttribute(const QString &name, const QString &value)
void setAttribute(const QString &name, double value)
void setAttribute(const QString &name, float value)
void setAttribute(const QString &name, int value)
void setAttribute(const QString &name, qlonglong value)
void setAttribute(const QString &name, qulonglong value)
void setAttribute(const QString &name, uint value)
void setAttributeNS(const QString &nsURI, const QString &qName, const QString &value)
void setAttributeNS(const QString &nsURI, const QString &qName, double value)
void setAttributeNS(const QString &nsURI, const QString &qName, int value)
void setAttributeNS(const QString &nsURI, const QString &qName, qlonglong value)
void setAttributeNS(const QString &nsURI, const QString &qName, qulonglong value)
void setAttributeNS(const QString &nsURI, const QString &qName, uint value)
QDomAttr setAttributeNode(const QDomAttr &newAttr)
QDomAttr setAttributeNodeNS(const QDomAttr &newAttr)
void setTagName(const QString &name)
QString tagName() const
QString text() const
QDomElement &operator=(const QDomElement &other)

Ausführliche Beschreibung

Elemente verfügen über ein ` tagName()` sowie über null oder mehr Attribute, die ihnen zugeordnet sind. Der Tag-Name kann mit ` setTagName()` geändert werden.

Elementattribute werden durch „ QDomAttr “-Objekte repräsentiert, die mithilfe der Funktionen „ attribute()“ und „ attributeNode()“ abgefragt werden können. Sie können Attribute mit den Funktionen „ setAttribute()“ und „ setAttributeNode()“ setzen. Attribute können mit „ removeAttribute()“ entfernt werden. Es gibt namensraumbewusste Entsprechungen zu diesen Funktionen, d. h. „ setAttributeNS()“, „ setAttributeNodeNS()“ und „ removeAttributeNS()“.

Wenn Sie auf den Text eines Knotens zugreifen möchten, verwenden Sie ` text()`, z. B.

QDomElement e = //...
//...
QString s = e.text()

Die Funktion ` text()` arbeitet rekursiv, um den Text zu finden (da nicht alle Elemente Text enthalten). Wenn Sie den gesamten Text in allen untergeordneten Knoten eines Knotens finden möchten, durchlaufen Sie die untergeordneten Knoten und suchen Sie nach ` QDomText `-Knoten, z. B.

QString text;
QDomElement element = doc.documentElement();
for(QDomNode n = element.firstChild(); !n.isNull(); n = n.nextSibling())
{
    QDomText t = n.toText();
    if (!t.isNull())
        text += t.data();
}

Beachten Sie, dass wir versuchen, jeden Knoten in einen Textknoten umzuwandeln und „ text()“ anstelle von „ firstChild()“ zu verwenden. „toText().data()“ oder „n.toText().data()“ direkt auf den Knoten anzuwenden, da der Knoten möglicherweise kein Textelement ist.

Mit ` elementsByTagName()` oder ` elementsByTagNameNS()` können Sie eine Liste aller Nachkommen eines Elements abrufen, die einen bestimmten Tag-Namen haben.

Um die Elemente eines DOM-Dokuments zu durchsuchen, verwenden Sie ` firstChildElement()`, ` lastChildElement()`, ` nextSiblingElement()` und ` previousSiblingElement()`. Um beispielsweise alle untergeordneten Elemente mit dem Namen „entry“ in einem Stammelement namens „database“ zu durchlaufen, können Sie Folgendes verwenden:

QDomDocument doc = // ...
QDomElement root = doc.firstChildElement("database");
QDomElement elt = root.firstChildElement("entry");
for (; !elt.isNull(); elt = elt.nextSiblingElement("entry")) {
    // ...
}

Weitere Informationen zum Document Object Model finden Sie unter Level 1 und Level 2 Core. Eine allgemeinere Einführung in die DOM-Implementierung finden Sie in der Dokumentation zu QDomDocument.

Dokumentation zu Mitgliedsfunktionen

QDomElement::QDomElement()

Erstellt ein leeres Element. Verwenden Sie die Funktion „ QDomDocument::createElement()“, um Elemente mit Inhalt zu erstellen.

QDomElement::QDomElement(const QDomElement &element)

Erstellt eine Kopie von ` element`.

Die Daten der Kopie werden gemeinsam genutzt (flache Kopie): Das Ändern eines Knotens wirkt sich auch auf den anderen aus. Wenn Sie eine tiefe Kopie erstellen möchten, verwenden Sie „ cloneNode()“.

QString QDomElement::attribute(const QString &name, const QString &defValue = QString()) const

Gibt das Attribut „ name “ zurück. Falls das Attribut nicht vorhanden ist, wird „ defValue “ zurückgegeben.

Siehe auch „ setAttribute()“, „ attributeNode()“, „ setAttributeNode()“ und „ attributeNS()“.

QString QDomElement::attributeNS(const QString &nsURI, const QString &localName, const QString &defValue = QString()) const

Gibt das Attribut mit dem lokalen Namen „ localName “ und der Namespace-URI „ nsURI “ zurück. Falls das Attribut nicht existiert, wird „ defValue “ zurückgegeben.

Siehe auch setAttributeNS(), attributeNodeNS(), setAttributeNodeNS() und attribute().

QDomAttr QDomElement::attributeNode(const QString &name)

Gibt das „ QDomAttr “-Objekt zurück, das dem Attribut „ name “ entspricht. Falls kein solches Attribut vorhanden ist, wird ein „ null attribute “ zurückgegeben.

Siehe auch „ setAttributeNode()“, „ attribute()“, „ setAttribute()“ und „ attributeNodeNS()“.

QDomAttr QDomElement::attributeNodeNS(const QString &nsURI, const QString &localName)

Gibt das Objekt „ QDomAttr “ zurück, das dem Attribut mit dem lokalen Namen „ localName “ und der Namespace-URI „ nsURI “ entspricht. Falls kein solches Attribut vorhanden ist, wird ein „ null attribute “ zurückgegeben.

Siehe auch setAttributeNodeNS(), setAttributeNode(), attribute() und setAttribute().

QDomNamedNodeMap QDomElement::attributes() const

Gibt ein ` QDomNamedNodeMap ` zurück, das alle Attribute dieses Elements enthält.

Siehe auch „ attribute()“, „ setAttribute()“, „ attributeNode()“ und „ setAttributeNode()“.

QDomNodeList QDomElement::elementsByTagName(const QString &tagname) const

Gibt eine ` QDomNodeList ` zurück, die alle Nachkommen dieses Elements mit dem Namen ` tagname ` enthält, auf die bei einer Vorordnungsdurchquerung des Teilbaums des Elements – mit diesem Element als Wurzel – gestoßen wurde. Die Reihenfolge der Elemente in der zurückgegebenen Liste entspricht der Reihenfolge, in der sie bei der Vorordnungsdurchquerung angetroffen wurden.

Siehe auch ` elementsByTagNameNS()` und ` QDomDocument::elementsByTagName()`.

QDomNodeList QDomElement::elementsByTagNameNS(const QString &nsURI, const QString &localName) const

Gibt ein ` QDomNodeList ` zurück, das alle Nachkommen dieses Elements mit dem lokalen Namen ` localName ` und der Namensraum-URI ` nsURI ` enthält, auf die bei einer Preorder-Traversierung des Elementunterbaums mit diesem Element als Wurzel gestoßen wurde. Die Reihenfolge der Elemente in der zurückgegebenen Liste entspricht der Reihenfolge, in der sie bei der Preorder-Traversierung angetroffen wurden.

Siehe auch elementsByTagName() und QDomDocument::elementsByTagNameNS().

bool QDomElement::hasAttribute(const QString &name) const

Gibt „ true “ zurück, wenn dieses Element ein Attribut namens „ name “ besitzt; andernfalls wird „ false “ zurückgegeben.

Hinweis: Diese Funktion berücksichtigt das Vorhandensein von Namespaces nicht. Daher wird der angegebene Name anhand vollständig qualifizierter Attributnamen geprüft, die eventuell vorhandene Namespace-Präfixe enthalten.

Verwenden Sie ` hasAttributeNS()` (), um explizit auf Attribute mit bestimmten Namespaces und Namen zu prüfen.

bool QDomElement::hasAttributeNS(const QString &nsURI, const QString &localName) const

Gibt „ true “ zurück, wenn dieses Element ein Attribut mit dem lokalen Namen „ localName “ und der Namensraum-URI „ nsURI “ besitzt; andernfalls wird „false“ zurückgegeben.

QDomNode::NodeType QDomElement::nodeType() const

Gibt „ ElementNode “ zurück.

void QDomElement::removeAttribute(const QString &name)

Entfernt das Attribut mit dem Namen „ name “ aus diesem Element.

Siehe auch „ setAttribute()“, „ attribute()“ und „ removeAttributeNS()“.

void QDomElement::removeAttributeNS(const QString &nsURI, const QString &localName)

Entfernt das Attribut mit dem lokalen Namen „ localName “ und der Namensraum-URI „ nsURI “ aus diesem Element.

Siehe auch setAttributeNS(), attributeNS() und removeAttribute().

QDomAttr QDomElement::removeAttributeNode(const QDomAttr &oldAttr)

Entfernt das Attribut „ oldAttr “ aus dem Element und gibt es zurück.

Siehe auch „ attributeNode()“ und „ setAttributeNode()“.

void QDomElement::setAttribute(const QString &name, const QString &value)

Fügt ein Attribut namens „ name “ mit dem Wert „ value “ hinzu. Falls bereits ein Attribut mit demselben Namen vorhanden ist, wird dessen Wert durch „ value “ ersetzt.

Siehe auch „ attribute()“, „ setAttributeNode()“ und „ setAttributeNS()“.

void QDomElement::setAttribute(const QString &name, double value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttribute(const QString &name, float value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttribute(const QString &name, int value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttribute(const QString &name, qlonglong value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttribute(const QString &name, qulonglong value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttribute(const QString &name, uint value)

Bei der Formatierung wird stets „ QLocale::C “ verwendet.

Dies ist eine überladene Funktion.

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, const QString &value)

Fügt ein Attribut mit dem qualifizierten Namen „ qName “ und der Namensraum-URI „ nsURI “ mit dem Wert „ value “ hinzu. Wenn bereits ein Attribut mit demselben lokalen Namen und derselben Namensraum-URI vorhanden ist, wird dessen Präfix durch das Präfix von „ qName “ ersetzt und sein Wert durch „ value “.

Obwohl qName der qualifizierte Name ist, wird der lokale Name herangezogen, um zu entscheiden, ob der Wert eines vorhandenen Attributs ersetzt werden soll.

Siehe auch attributeNS(), setAttributeNodeNS() und setAttribute().

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, double value)

Dies ist eine überladene Funktion.

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, int value)

Dies ist eine überladene Funktion.

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, qlonglong value)

Dies ist eine überladene Funktion.

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, qulonglong value)

Dies ist eine überladene Funktion.

void QDomElement::setAttributeNS(const QString &nsURI, const QString &qName, uint value)

Dies ist eine überladene Funktion.

QDomAttr QDomElement::setAttributeNode(const QDomAttr &newAttr)

Fügt diesem Element das Attribut „ newAttr “ hinzu.

Wenn das Element ein anderes Attribut mit demselben Namen wie „ newAttr “ besitzt, ersetzt diese Funktion dieses Attribut und gibt es zurück; andernfalls gibt die Funktion ein „ null attribute “ zurück.

Siehe auch „ attributeNode()“, „ setAttribute()“ und „ setAttributeNodeNS()“.

QDomAttr QDomElement::setAttributeNodeNS(const QDomAttr &newAttr)

Fügt diesem Element das Attribut „ newAttr “ hinzu.

Wenn das Element ein anderes Attribut besitzt, das denselben lokalen Namen und dieselbe Namensraum-URI wie „ newAttr “ hat, ersetzt diese Funktion dieses Attribut und gibt es zurück; andernfalls gibt die Funktion ein „ null attribute “ zurück.

Siehe auch „ attributeNodeNS()“, „ setAttributeNS()“ und „ setAttributeNode()“.

void QDomElement::setTagName(const QString &name)

Setzt den Tag-Namen dieses Elements auf „ name “.

Siehe auch tagName().

QString QDomElement::tagName() const

Gibt den Tag-Namen dieses Elements zurück. Bei einem XML-Element wie diesem:

<img src="myimg.png">

würde die Funktion „tagname“ den Wert „img“ zurückgeben.

Siehe auch ` setTagName()`.

QString QDomElement::text() const

Gibt den Text des Elements oder eine leere Zeichenkette zurück.

Beispiel:

<h1>Hello <b>Qt</b> <![CDATA[<xml is cool>]]></h1>

Die Funktion text() des „ QDomElement “ für das „ <h1> “-Tag gibt den folgenden Text zurück:

Hello Qt <xml is cool>

Kommentare werden von dieser Funktion ignoriert. Sie wertet ausschließlich Objekte vom Typ „ QDomText “ und „ QDomCDATASection “ aus.

QDomElement &QDomElement::operator=(const QDomElement &other)

Weist diesem DOM-Element „ other “ zu.

Die Daten der Kopie werden gemeinsam genutzt (flache Kopie): Das Ändern eines Knotens führt auch zu einer Änderung des anderen. Wenn Sie eine tiefe Kopie erstellen möchten, verwenden Sie ` cloneNode()`.

© 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.