QDomNode Class
Die Klasse QDomNode ist die Basisklasse für alle Knoten in einem DOM-Baum. Mehr...
Kopfzeile: | #include <QDomNode> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
qmake: | QT += xml |
Vererbt von: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QDomNode ist Teil von XML Classes.
Hinweis: Alle Funktionen in dieser Klasse sind reentrant.
Öffentliche Typen
enum | EncodingPolicy { EncodingFromDocument, EncodingFromTextStream } |
enum | NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode } |
Öffentliche Funktionen
QDomNode() | |
QDomNode(const QDomNode &node) | |
~QDomNode() | |
QDomNode | appendChild(const QDomNode &newChild) |
QDomNamedNodeMap | attributes() const |
QDomNodeList | childNodes() const |
void | clear() |
QDomNode | cloneNode(bool deep = true) const |
int | columnNumber() const |
QDomNode | firstChild() const |
QDomElement | firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
bool | hasAttributes() const |
bool | hasChildNodes() const |
QDomNode | insertAfter(const QDomNode &newChild, const QDomNode &refChild) |
QDomNode | insertBefore(const QDomNode &newChild, const QDomNode &refChild) |
bool | isAttr() const |
bool | isCDATASection() const |
bool | isCharacterData() const |
bool | isComment() const |
bool | isDocument() const |
bool | isDocumentFragment() const |
bool | isDocumentType() const |
bool | isElement() const |
bool | isEntity() const |
bool | isEntityReference() const |
bool | isNotation() const |
bool | isNull() const |
bool | isProcessingInstruction() const |
bool | isSupported(const QString &feature, const QString &version) const |
bool | isText() const |
QDomNode | lastChild() const |
QDomElement | lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
int | lineNumber() const |
QString | localName() const |
QDomNode | namedItem(const QString &name) const |
QString | namespaceURI() const |
QDomNode | nextSibling() const |
QDomElement | nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
QString | nodeName() const |
QDomNode::NodeType | nodeType() const |
QString | nodeValue() const |
void | normalize() |
QDomDocument | ownerDocument() const |
QDomNode | parentNode() const |
QString | prefix() const |
QDomNode | previousSibling() const |
QDomElement | previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const |
QDomNode | removeChild(const QDomNode &oldChild) |
QDomNode | replaceChild(const QDomNode &newChild, const QDomNode &oldChild) |
void | save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const |
void | setNodeValue(const QString &value) |
void | setPrefix(const QString &pre) |
QDomAttr | toAttr() const |
QDomCDATASection | toCDATASection() const |
QDomCharacterData | toCharacterData() const |
QDomComment | toComment() const |
QDomDocument | toDocument() const |
QDomDocumentFragment | toDocumentFragment() const |
QDomDocumentType | toDocumentType() const |
QDomElement | toElement() const |
QDomEntity | toEntity() const |
QDomEntityReference | toEntityReference() const |
QDomNotation | toNotation() const |
QDomProcessingInstruction | toProcessingInstruction() const |
QDomText | toText() const |
bool | operator!=(const QDomNode &other) const |
QDomNode & | operator=(const QDomNode &other) |
bool | operator==(const QDomNode &other) const |
Verwandte Nicht-Mitglieder
QTextStream & | operator<<(QTextStream &str, const QDomNode &node) |
Detaillierte Beschreibung
Viele Funktionen im DOM geben einen QDomNode zurück.
Sie können den Typ eines Knotens mit isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() und isComment() herausfinden.
Ein QDomNode kann mit toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() oder toComment() in eine seiner Unterklassen umgewandelt werden. Sie können einen Knoten mit clear() in einen Null-Knoten umwandeln.
Kopien der Klasse QDomNode teilen sich ihre Daten durch explizites Sharing. Das bedeutet, dass die Änderung eines Knotens alle Kopien verändert. Dies ist besonders nützlich in Kombination mit Funktionen, die einen QDomNode zurückgeben, z.B. firstChild(). Sie können eine unabhängige (tiefe) Kopie des Knotens mit cloneNode() erstellen.
Ein QDomNode kann null sein, ähnlich wie nullptr
. Das Erstellen einer Kopie eines Null-Knotens führt zu einem weiteren Null-Knoten. Es ist nicht möglich, einen Null-Knoten zu verändern, aber es ist möglich, ihm einen anderen, möglicherweise nicht-null-Knoten zuzuweisen. In diesem Fall bleibt die Kopie des Null-Knotens Null. Sie können prüfen, ob ein QDomNode null ist, indem Sie isNull() aufrufen. Der leere Konstruktor eines QDomNode (oder einer der abgeleiteten Klassen) erzeugt einen Null-Knoten.
Knoten werden mit insertBefore(), insertAfter() oder appendChild() eingefügt. Sie können einen Knoten durch einen anderen ersetzen mit replaceChild() und einen Knoten entfernen mit removeChild().
Um Knoten zu durchlaufen, verwenden Sie firstChild(), um das erste Kind eines Knotens (falls vorhanden) zu erhalten, und nextSibling(), um zu traversieren. QDomNode bietet auch lastChild(), previousSibling() und parentNode(). Um den ersten Kindknoten mit einem bestimmten Knotennamen zu finden, verwenden Sie namedItem().
Um herauszufinden, ob ein Knoten Kinder hat, verwenden Sie hasChildNodes() und um eine Liste aller Kinder eines Knotens zu erhalten, verwenden Sie childNodes().
Der Name und der Wert des Knotens (dessen Bedeutung je nach Typ variiert) werden von nodeName() bzw. nodeValue() zurückgegeben. Der Typ des Knotens wird von nodeType() zurückgegeben. Der Wert des Knotens kann mit setNodeValue() gesetzt werden.
Das Dokument, zu dem der Knoten gehört, wird mit ownerDocument() zurückgegeben.
Benachbarte QDomText -Knoten können mit normalize() zu einem einzigen Knoten zusammengeführt werden.
QDomElement Knoten haben Attribute, die mit attributes() abgefragt werden können.
QDomElement und QDomAttr Knoten können Namespaces haben, die mit namespaceURI() abgerufen werden können. Ihr lokaler Name wird mit localName() abgefragt, ihr Präfix mit prefix(). Das Präfix kann mit setPrefix() gesetzt werden.
Die XML-Darstellung des Knotens kann mit save() in einen Textstrom geschrieben werden.
Das folgende Beispiel sucht nach dem ersten Element in einem XML-Dokument und gibt die Namen aller Elemente aus, die seine direkten Kinder sind.
QDomDocument d; QString someXML; d.setContent(someXML); QDomNode n = d.firstChild(); while (!n.isNull()) { if (n.isElement()) { QDomElement e = n.toElement(); cout << "Element name: " << qPrintable(e.tagName()) << '\n'; break; } n = n.nextSibling(); }
Weitere Informationen über das 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 QDomDocument.
Member Type Dokumentation
enum QDomNode::EncodingPolicy
Diese Aufzählung gibt an, wie QDomNode::save() bestimmt, welche Kodierung bei der Serialisierung zu verwenden ist.
Konstante | Wert | Beschreibung |
---|---|---|
QDomNode::EncodingFromDocument | 1 | Die Kodierung wird aus dem Dokument geholt. |
QDomNode::EncodingFromTextStream | 2 | Die Kodierung wird aus dem QTextStream geholt. |
Siehe auch QDomNode::save().
enum QDomNode::NodeType
Diese Aufzählung definiert den Typ des Knotens:
Konstante | Wert | Beschreibung |
---|---|---|
QDomNode::ElementNode | 1 | |
QDomNode::AttributeNode | 2 | |
QDomNode::TextNode | 3 | |
QDomNode::CDATASectionNode | 4 | |
QDomNode::EntityReferenceNode | 5 | |
QDomNode::EntityNode | 6 | |
QDomNode::ProcessingInstructionNode | 7 | |
QDomNode::CommentNode | 8 | |
QDomNode::DocumentNode | 9 | |
QDomNode::DocumentTypeNode | 10 | |
QDomNode::DocumentFragmentNode | 11 | |
QDomNode::NotationNode | 12 | |
QDomNode::BaseNode | 21 | Ein QDomNode Objekt, d.h. keine QDomNode Unterklasse. |
QDomNode::CharacterDataNode | 22 |
Dokumentation der Mitgliedsfunktionen
QDomNode::QDomNode()
Konstruiert einen null Knoten.
QDomNode::QDomNode(const QDomNode &node)
Konstruiert eine Kopie von node.
Die Daten der Kopie werden gemeinsam genutzt (oberflächliche Kopie): Die Änderung eines Knotens wird auch den anderen verändern. Wenn Sie eine tiefe Kopie erstellen möchten, verwenden Sie cloneNode().
[noexcept]
QDomNode::~QDomNode()
Zerstört das Objekt und gibt seine Ressourcen frei.
QDomNode QDomNode::appendChild(const QDomNode &newChild)
Hängt newChild als letztes Kind des Knotens an.
Wenn newChild das Kind eines anderen Knotens ist, wird es zu diesem Knoten reparentiert. Wenn newChild ein Kind dieses Knotens ist, wird seine Position in der Liste der Kinder geändert.
Wenn newChild ein QDomDocumentFragment ist, werden die Kinder des Fragments aus dem Fragment entfernt und angehängt.
Wenn newChild ein QDomElement ist und dieser Knoten ein QDomDocument ist, der bereits einen Elementknoten als Kind hat, wird newChild nicht als Kind hinzugefügt und ein Null-Knoten zurückgegeben.
Gibt im Erfolgsfall einen neuen Verweis auf newChild oder im Fehlerfall einen null node zurück.
Der Aufruf dieser Funktion auf einem Null-Knoten (der z. B. mit dem Standardkonstruktor erstellt wurde) bewirkt nichts und gibt null node zurück.
Die DOM-Spezifikation verbietet das Einfügen von Attributknoten, aber aus historischen Gründen akzeptiert QDom sie trotzdem.
Siehe auch insertBefore(), insertAfter(), replaceChild(), und removeChild().
QDomNamedNodeMap QDomNode::attributes() const
Gibt eine benannte Knotenkarte mit allen Attributen zurück. Attribute werden nur für QDomElementbereitgestellt.
Wenn Sie die Attribute in der Map ändern, ändern sich auch die Attribute dieses QDomNode.
QDomNodeList QDomNode::childNodes() const
Gibt eine Liste aller direkten Unterknoten zurück.
In den meisten Fällen werden Sie diese Funktion für ein QDomElement Objekt aufrufen.
Zum Beispiel, wenn das XML-Dokument wie folgt aussieht:
<body> <h1>Heading</h1> <p>Hello <b>you</b></p> </body>
Dann enthält die Liste der Kindknoten für das "body"-Element den durch das <h1> -Tag erzeugten Knoten und den durch das <p> -Tag erzeugten Knoten.
Die Knoten in der Liste werden nicht kopiert, so dass eine Änderung der Knoten in der Liste auch die Kinder dieses Knotens ändert.
Siehe auch firstChild() und lastChild().
void QDomNode::clear()
Konvertiert den Knoten in einen Null-Knoten; wenn er vorher kein Null-Knoten war, werden sein Typ und sein Inhalt gelöscht.
Siehe auch isNull().
QDomNode QDomNode::cloneNode(bool deep = true) const
Erzeugt eine tiefe (nicht flache) Kopie des QDomNode.
Wenn deep wahr ist, wird das Klonen rekursiv durchgeführt, was bedeutet, dass alle Kinder des Knotens ebenfalls in die Tiefe kopiert werden. Wenn deep falsch ist, wird nur der Knoten selbst kopiert und die Kopie hat keine Kindknoten.
int QDomNode::columnNumber() const
Für Knoten, die mit QDomDocument::setContent() erstellt wurden, gibt diese Funktion die Spaltennummer im XML-Dokument zurück, in der der Knoten geparst wurde. Andernfalls wird -1 zurückgegeben.
Siehe auch lineNumber() und QDomDocument::setContent().
QDomNode QDomNode::firstChild() const
Gibt das erste Kind des Knotens zurück. Wenn es keinen Kindknoten gibt, wird null node zurückgegeben. Eine Änderung des zurückgegebenen Knotens führt auch zu einer Änderung des Knotens in der Dokumentenstruktur.
Siehe auch lastChild() und childNodes().
QDomElement QDomNode::firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Gibt das erste untergeordnete Element mit dem Tagnamen tagName und dem Namespace URI namespaceURI zurück. Wenn tagName leer ist, wird das erste untergeordnete Element mit namespaceURI zurückgegeben, und wenn namespaceURI leer ist, wird das erste untergeordnete Element mit tagName zurückgegeben. Wenn beide Parameter leer sind, wird das erste untergeordnete Element zurückgegeben. Gibt ein Nullelement zurück, wenn kein solches Kindelement existiert.
Siehe auch lastChildElement(), previousSiblingElement(), und nextSiblingElement().
bool QDomNode::hasAttributes() const
Gibt true
zurück, wenn der Knoten Attribute hat; andernfalls false
.
Siehe auch attributes().
bool QDomNode::hasChildNodes() const
Gibt true
zurück, wenn der Knoten ein oder mehrere Kinder hat; andernfalls wird false
zurückgegeben.
QDomNode QDomNode::insertAfter(const QDomNode &newChild, const QDomNode &refChild)
Fügt den Knoten newChild nach dem Kindknoten refChild ein. refChild muss ein direktes Kind dieses Knotens sein. Wenn refChild null ist, wird newChild als letztes Kind dieses Knotens angehängt.
Wenn newChild das Kind eines anderen Knotens ist, wird es an diesen Knoten reparentiert. Wenn newChild ein Kind dieses Knotens ist, dann wird seine Position in der Liste der Kinder geändert.
Wenn newChild ein QDomDocumentFragment ist, dann werden die Kinder des Fragments aus dem Fragment entfernt und nach refChild eingefügt.
Gibt bei Erfolg einen neuen Verweis auf newChild oder bei einem Fehlschlag einen null node zurück.
Die DOM-Spezifikation verbietet das Einfügen von Attributknoten, aber aus historischen Gründen akzeptiert QDom sie trotzdem.
Siehe auch insertBefore(), replaceChild(), removeChild(), und appendChild().
QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)
Fügt den Knoten newChild vor dem Kindknoten refChild ein. refChild muss ein direktes Kind dieses Knotens sein. Wenn refChild null ist, wird newChild als erstes Kind des Knotens eingefügt.
Wenn newChild das Kind eines anderen Knotens ist, wird es zu diesem Knoten reparentiert. Wenn newChild ein Kind dieses Knotens ist, dann wird seine Position in der Liste der Kinder geändert.
Wenn newChild ein QDomDocumentFragment ist, dann werden die Kinder des Fragments aus dem Fragment entfernt und vor refChild eingefügt.
Gibt bei Erfolg einen neuen Verweis auf newChild oder bei einem Fehlschlag einen null node zurück.
Die DOM-Spezifikation verbietet das Einfügen von Attributknoten, aber aus historischen Gründen akzeptiert QDom sie trotzdem.
Siehe auch insertAfter(), replaceChild(), removeChild(), und appendChild().
bool QDomNode::isAttr() const
Gibt true
zurück, wenn der Knoten ein Attribut ist; andernfalls wird false
zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomAttribute ist; Sie können das QDomAttribute mit toAttribute() erhalten.
Siehe auch toAttr().
bool QDomNode::isCDATASection() const
Gibt true
zurück, wenn der Knoten ein CDATA-Abschnitt ist; andernfalls wird false zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomCDATASection ist; Sie können QDomCDATASection mit toCDATASection() erhalten.
Siehe auch toCDATASection().
bool QDomNode::isCharacterData() const
Gibt true
zurück, wenn der Knoten ein Zeichendatenknoten ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet dies nicht, dass es sich bei diesem Objekt um QDomCharacterData handelt; Sie können QDomCharacterData mit toCharacterData() erhalten.
Siehe auch toCharacterData().
bool QDomNode::isComment() const
Gibt true
zurück, wenn der Knoten ein Kommentar ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomComment ist; Sie können QDomComment mit toComment() erhalten.
Siehe auch toComment().
bool QDomNode::isDocument() const
Gibt true
zurück, wenn der Knoten ein Dokument ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomDocument ist; Sie können QDomDocument mit toDocument() erhalten.
Siehe auch toDocument().
bool QDomNode::isDocumentFragment() const
Gibt true
zurück, wenn der Knoten ein Dokumentfragment ist; andernfalls wird false zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomDocumentFragment ist; Sie können QDomDocumentFragment mit toDocumentFragment() erhalten.
Siehe auch toDocumentFragment().
bool QDomNode::isDocumentType() const
Gibt true
zurück, wenn der Knoten ein Dokumenttyp ist; andernfalls wird false zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomDocumentType ist; Sie können QDomDocumentType mit toDocumentType() erhalten.
Siehe auch toDocumentType().
bool QDomNode::isElement() const
Gibt true
zurück, wenn der Knoten ein Element ist; andernfalls wird false
zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomElement ist; Sie können QDomElement mit toElement() erhalten.
Siehe auch toElement().
bool QDomNode::isEntity() const
Gibt true
zurück, wenn der Knoten eine Entität ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomEntity ist; Sie können QDomEntity mit toEntity() erhalten.
Siehe auch toEntity().
bool QDomNode::isEntityReference() const
Gibt true
zurück, wenn der Knoten eine Entitätsreferenz ist; andernfalls wird false zurückgegeben.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomEntityReference ist; Sie können QDomEntityReference mit toEntityReference() erhalten.
Siehe auch toEntityReference().
bool QDomNode::isNotation() const
Gibt true
zurück, wenn der Knoten eine Notation ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomNotation ist; Sie können QDomNotation mit toNotation() erhalten.
Siehe auch toNotation().
bool QDomNode::isNull() const
Gibt true
zurück, wenn dieser Knoten null ist (d. h. wenn er keinen Typ oder Inhalt hat); andernfalls wird false
zurückgegeben.
bool QDomNode::isProcessingInstruction() const
Gibt true
zurück, wenn der Knoten eine Verarbeitungsanweisung ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt eine QDomProcessingInstruction ist; Sie können die QProcessingInstruction mit toProcessingInstruction() erhalten.
Siehe auch toProcessingInstruction().
bool QDomNode::isSupported(const QString &feature, const QString &version) const
Gibt true
zurück, wenn die DOM-Implementierung das Merkmal feature implementiert und dieses Merkmal von diesem Knoten in der Version version unterstützt wird; andernfalls wird false
zurückgegeben.
Siehe auch QDomImplementation::hasFeature().
bool QDomNode::isText() const
Gibt true
zurück, wenn der Knoten ein Textknoten ist; andernfalls false
.
Wenn diese Funktion true
zurückgibt, bedeutet das nicht, dass dieses Objekt ein QDomText ist; Sie können QDomText mit toText() erhalten.
Siehe auch toText().
QDomNode QDomNode::lastChild() const
Gibt das letzte Kind des Knotens zurück. Wenn es keinen untergeordneten Knoten gibt, wird null node zurückgegeben. Eine Änderung des zurückgegebenen Knotens führt auch zu einer Änderung des Knotens in der Dokumentenstruktur.
Siehe auch firstChild() und childNodes().
QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Gibt das letzte untergeordnete Element mit dem Tagnamen tagName und dem Namespace URI namespaceURI zurück. Wenn tagName leer ist, wird das letzte untergeordnete Element mit namespaceURI zurückgegeben, und wenn namespaceURI leer ist, wird das letzte untergeordnete Element mit tagName zurückgegeben. Wenn beide Parameter leer sind, wird das letzte untergeordnete Element zurückgegeben. Gibt ein Nullelement zurück, wenn kein solches Kindelement existiert.
Siehe auch firstChildElement(), previousSiblingElement(), und nextSiblingElement().
int QDomNode::lineNumber() const
Für Knoten, die mit QDomDocument::setContent() erstellt wurden, gibt diese Funktion die Zeilennummer im XML-Dokument zurück, in der der Knoten geparst wurde. Andernfalls wird -1 zurückgegeben.
Siehe auch columnNumber() und QDomDocument::setContent().
QString QDomNode::localName() const
Wenn der Knoten Namespaces verwendet, gibt diese Funktion den lokalen Namen des Knotens zurück; andernfalls wird eine leere Zeichenkette zurückgegeben.
Nur Knoten des Typs ElementNode oder AttributeNode können Namespaces haben. Ein Namespace muss zum Zeitpunkt der Erstellung angegeben worden sein; es ist nicht möglich, nachträglich einen Namespace hinzuzufügen.
Siehe auch prefix(), namespaceURI(), QDomDocument::createElementNS(), und QDomDocument::createAttributeNS().
QDomNode QDomNode::namedItem(const QString &name) const
Gibt den ersten direkten untergeordneten Knoten zurück, für den nodeName() gleich name ist.
Wenn kein solches direktes Kind existiert, wird null node zurückgegeben.
Siehe auch nodeName().
QString QDomNode::namespaceURI() const
Gibt den Namespace-URI dieses Knotens zurück oder einen leeren String, wenn der Knoten keinen Namespace-URI hat.
Nur Knoten des Typs ElementNode oder AttributeNode können Namespaces haben. Ein Namespace-URI muss zum Zeitpunkt der Erstellung angegeben werden und kann später nicht mehr geändert werden.
Siehe auch prefix(), localName(), QDomDocument::createElementNS(), und QDomDocument::createAttributeNS().
QDomNode QDomNode::nextSibling() const
Gibt den nächsten Geschwisterknoten im Dokumentenbaum zurück. Eine Änderung des zurückgegebenen Knotens führt auch zu einer Änderung des Knotens in der Dokumentenstruktur.
Wenn Sie XML wie dieses haben:
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
und dieses QDomNode den <p>-Tag darstellt, gibt nextSibling() den Knoten zurück, der den <h2>-Tag darstellt.
Siehe auch previousSibling().
QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Gibt das nächste geschwisterliche Element mit dem Tag-Namen tagName und dem Namespace URI namespaceURI zurück. Wenn tagName leer ist, wird das nächste untergeordnete Element mit namespaceURI zurückgegeben, und wenn namespaceURI leer ist, wird das nächste untergeordnete Element mit tagName zurückgegeben. Wenn beide Parameter leer sind, wird das nächste untergeordnete Element zurückgegeben. Gibt ein Nullelement zurück, wenn kein solches Geschwister-Element existiert.
Siehe auch firstChildElement(), previousSiblingElement(), und lastChildElement().
QString QDomNode::nodeName() const
Gibt den Namen des Knotens zurück.
Die Bedeutung des Namens hängt von der Unterklasse ab:
Name | Bedeutung |
---|---|
QDomAttr | Der Name des Attributs |
QDomCDATASection | Die Zeichenkette "#cdata-section" |
QDomComment | Die Zeichenkette "#comment" |
QDomDocument | Die Zeichenkette "#document" |
QDomDocumentFragment | Die Zeichenkette "#document-fragment" |
QDomDocumentType | Der Name des Dokumenttyps |
QDomElement | Der Tag-Name |
QDomEntity | Der Name der Entität |
QDomEntityReference | Der Name der referenzierten Entität |
QDomNotation | Der Name der Notation |
QDomProcessingInstruction | Das Ziel der Verarbeitungsanweisung |
QDomText | Die Zeichenkette "#text" |
Hinweis: Diese Funktion berücksichtigt das Vorhandensein von Namensräumen bei der Verarbeitung der Namen von Element- und Attributknoten nicht. Daher kann der zurückgegebene Name jedes beliebige Namespace-Präfix enthalten, das möglicherweise vorhanden ist. Um den Knotennamen eines Elements oder Attributs zu erhalten, verwenden Sie localName(); um das Namespace-Präfix zu erhalten, verwenden Sie namespaceURI().
Siehe auch nodeValue().
QDomNode::NodeType QDomNode::nodeType() const
Gibt den Typ des Knotens zurück.
Siehe auch toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData(), und toComment().
QString QDomNode::nodeValue() const
Gibt den Wert des Knotens zurück.
Die Bedeutung des Wertes hängt von der Unterklasse ab:
Name | Bedeutung |
---|---|
QDomAttr | Der Wert des Attributs |
QDomCDATASection | Der Inhalt des CDATA-Abschnitts |
QDomComment | Der Kommentar |
QDomProcessingInstruction | Die Daten der Verarbeitungsanweisung |
QDomText | Der Text |
Alle anderen Unterklassen haben keinen Knotenwert und geben einen leeren String zurück.
Siehe auch setNodeValue() und nodeName().
void QDomNode::normalize()
Der Aufruf von normalize() für ein Element wandelt alle seine Kinder in eine Standardform um. Das bedeutet, dass benachbarte QDomText Objekte zu einem einzigen Textobjekt zusammengeführt werden (QDomCDATASection Knoten werden nicht zusammengeführt).
QDomDocument QDomNode::ownerDocument() const
Gibt das Dokument zurück, zu dem dieser Knoten gehört.
QDomNode QDomNode::parentNode() const
Gibt den übergeordneten Knoten zurück. Wenn dieser Knoten keinen übergeordneten Knoten hat, wird ein Null-Knoten zurückgegeben (d. h. ein Knoten, für den isNull() true
zurückgibt).
QString QDomNode::prefix() const
Gibt das Namespace-Präfix des Knotens zurück oder einen leeren String, wenn der Knoten kein Namespace-Präfix hat.
Nur Knoten vom Typ ElementNode oder AttributeNode können Namespaces haben. Ein Namespace-Präfix muss zur Erstellungszeit angegeben werden. Wenn ein Knoten mit einem Namespace-Präfix erstellt wurde, können Sie ihn später mit setPrefix() ändern.
Wenn Sie ein Element oder Attribut mit QDomDocument::createElement() oder QDomDocument::createAttribute() erstellen, ist das Präfix eine leere Zeichenfolge. Wenn Sie stattdessen QDomDocument::createElementNS() oder QDomDocument::createAttributeNS() verwenden, ist das Präfix keine leere Zeichenkette; es kann jedoch eine leere Zeichenkette sein, wenn der Name kein Präfix hat.
Siehe auch setPrefix(), localName(), namespaceURI(), QDomDocument::createElementNS(), und QDomDocument::createAttributeNS().
QDomNode QDomNode::previousSibling() const
Gibt den vorherigen Geschwisterknoten im Dokumentenbaum zurück. Wenn Sie den zurückgegebenen Knoten ändern, ändert sich auch der Knoten in der Dokumentstruktur.
Zum Beispiel, wenn Sie XML wie dieses haben:
<h1>Heading</h1> <p>The text...</p> <h2>Next heading</h2>
und diese QDomNode den <p> Tag darstellt, gibt previousSibling() den Knoten zurück, der den <h1> Tag darstellt.
Siehe auch nextSibling().
QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Gibt das vorherige Geschwisterelement mit dem Tagnamen tagName und dem Namespace URI namespaceURI zurück. Wenn tagName leer ist, wird das vorherige Geschwister-Element mit namespaceURI zurückgegeben, und wenn namespaceURI leer ist, wird das vorherige Geschwister-Element mit tagName zurückgegeben. Wenn beide Parameter leer sind, wird das vorherige Geschwister-Element zurückgegeben. Gibt ein Nullelement zurück, wenn kein solches Geschwister-Element existiert.
Siehe auch firstChildElement(), nextSiblingElement(), und lastChildElement().
QDomNode QDomNode::removeChild(const QDomNode &oldChild)
Entfernt oldChild aus der Liste der Kinder. oldChild muss ein direktes Kind dieses Knotens sein.
Gibt bei Erfolg einen neuen Verweis auf oldChild oder bei einem Fehlschlag einen null node zurück.
Siehe auch insertBefore(), insertAfter(), replaceChild(), und appendChild().
QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)
Ersetzt oldChild durch newChild. oldChild muss ein direktes Kind dieses Knotens sein.
Wenn newChild das Kind eines anderen Knotens ist, wird es zu diesem Knoten reparentiert. Wenn newChild ein Kind dieses Knotens ist, wird seine Position in der Liste der Kinder geändert.
Wenn newChild ein QDomDocumentFragment ist, dann wird oldChild durch alle Kinder des Fragments ersetzt.
Gibt im Erfolgsfall einen neuen Verweis auf oldChild zurück, im Fehlerfall einen null node.
Siehe auch insertBefore(), insertAfter(), removeChild(), und appendChild().
void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const
Schreibt die XML-Darstellung des Knotens und aller seiner Kinder in den Stream stream. Diese Funktion verwendet indent als Größe für die Einrückung des Knotens.
Wenn das Dokument ungültige XML-Zeichen oder Zeichen enthält, die nicht in der angegebenen Kodierung kodiert werden können, sind das Ergebnis und das Verhalten undefiniert.
Wenn encodingPolicy QDomNode::EncodingFromDocument ist und dieser Knoten ein Dokumentenknoten ist, wird die Kodierung des Textstroms stream festgelegt, indem eine Verarbeitungsanweisung mit dem Namen "xml" als XML-Deklaration behandelt wird, sofern eine solche vorhanden ist, und andernfalls wird standardmäßig UTF-8 verwendet. XML-Deklarationen sind keine Verarbeitungsanweisungen, aber dieses Verhalten besteht aus historischen Gründen. Wenn dieser Knoten kein Dokumentenknoten ist, wird die Kodierung des Textstroms verwendet.
Wenn encodingPolicy EncodingFromTextStream ist und dieser Knoten ein Dokumentenknoten ist, verhält sich diese Funktion wie save(QTextStream &str, int indent) mit der Ausnahme, dass das im Textstrom stream angegebene Encoding verwendet wird.
Enthält das Dokument ungültige XML-Zeichen oder Zeichen, die nicht in der angegebenen Kodierung kodiert werden können, sind das Ergebnis und das Verhalten undefiniert.
void QDomNode::setNodeValue(const QString &value)
Setzt den Wert des Knotens auf value.
Siehe auch nodeValue().
void QDomNode::setPrefix(const QString &pre)
Wenn der Knoten ein Namespace-Präfix hat, ändert diese Funktion das Namespace-Präfix des Knotens in pre. Andernfalls tut diese Funktion nichts.
Nur Knoten vom Typ ElementNode oder AttributeNode können Namensräume haben. Ein Namespace-Präfix muss zum Zeitpunkt der Erstellung angegeben werden; es ist nicht möglich, nachträglich ein Namespace-Präfix hinzuzufügen.
Siehe auch prefix(), localName(), namespaceURI(), QDomDocument::createElementNS(), und QDomDocument::createAttributeNS().
QDomAttr QDomNode::toAttr() const
Konvertiert ein QDomNode in ein QDomAttr. Wenn der Knoten kein Attribut ist, wird das zurückgegebene Objekt null sein.
Siehe auch isAttr().
QDomCDATASection QDomNode::toCDATASection() const
Konvertiert ein QDomNode in ein QDomCDATASection. Wenn der Knoten kein CDATA-Abschnitt ist, wird das zurückgegebene Objekt null sein.
Siehe auch isCDATASection().
QDomCharacterData QDomNode::toCharacterData() const
Konvertiert ein QDomNode in ein QDomCharacterData. Wenn der Knoten kein Zeichendatenknoten ist, ist das zurückgegebene Objekt null.
Siehe auch isCharacterData().
QDomComment QDomNode::toComment() const
Konvertiert einen QDomNode in einen QDomComment. Wenn der Knoten kein Kommentar ist, ist das zurückgegebene Objekt null.
Siehe auch isComment().
QDomDocument QDomNode::toDocument() const
Konvertiert ein QDomNode in ein QDomDocument. Wenn der Knoten kein Dokument ist, ist das zurückgegebene Objekt null.
Siehe auch isDocument().
QDomDocumentFragment QDomNode::toDocumentFragment() const
Konvertiert ein QDomNode in ein QDomDocumentFragment. Wenn der Knoten kein Dokumentfragment ist, ist das zurückgegebene Objekt null.
Siehe auch isDocumentFragment().
QDomDocumentType QDomNode::toDocumentType() const
Konvertiert ein QDomNode in ein QDomDocumentType. Wenn der Knoten kein Dokumenttyp ist, ist das zurückgegebene Objekt null.
Siehe auch isDocumentType().
QDomElement QDomNode::toElement() const
Konvertiert ein QDomNode in ein QDomElement. Wenn der Knoten kein Element ist, ist das zurückgegebene Objekt null.
Siehe auch isElement().
QDomEntity QDomNode::toEntity() const
Konvertiert ein QDomNode in ein QDomEntity. Wenn der Knoten keine Entität ist, wird das zurückgegebene Objekt null sein.
Siehe auch isEntity().
QDomEntityReference QDomNode::toEntityReference() const
Konvertiert ein QDomNode in ein QDomEntityReference. Wenn der Knoten keine Entitätsreferenz ist, wird das zurückgegebene Objekt null sein.
Siehe auch isEntityReference().
QDomNotation QDomNode::toNotation() const
Konvertiert einen QDomNode in einen QDomNotation. Wenn der Knoten keine Notation ist, ist das zurückgegebene Objekt null.
Siehe auch isNotation().
QDomProcessingInstruction QDomNode::toProcessingInstruction() const
Konvertiert einen QDomNode in einen QDomProcessingInstruction. Wenn der Knoten keine Verarbeitungsanweisung ist, ist das zurückgegebene Objekt null.
Siehe auch isProcessingInstruction().
QDomText QDomNode::toText() const
Konvertiert einen QDomNode in einen QDomText. Wenn der Knoten kein Text ist, wird das zurückgegebene Objekt null sein.
Siehe auch isText().
bool QDomNode::operator!=(const QDomNode &other) const
Gibt true
zurück, wenn other und dieser DOM-Knoten nicht gleich sind; andernfalls wird false
zurückgegeben.
QDomNode &QDomNode::operator=(const QDomNode &other)
Weist diesem DOM-Knoten eine Kopie von other zu.
Die Daten der Kopie werden gemeinsam genutzt (oberflächliche Kopie): Die Änderung eines Knotens ändert auch den anderen. Wenn Sie eine tiefe Kopie erstellen möchten, verwenden Sie cloneNode().
bool QDomNode::operator==(const QDomNode &other) const
Gibt true
zurück, wenn other und dieser DOM-Knoten gleich sind; andernfalls wird false
zurückgegeben.
Jede Instanz von QDomNode fungiert als Verweis auf eine zugrunde liegende Datenstruktur in QDomDocument. Der Test auf Gleichheit prüft, ob die beiden Verweise auf denselben zugrunde liegenden Knoten verweisen. Ein Beispiel:
QDomDocument document; QDomElement element1 = document.documentElement(); QDomElement element2 = element1;
Die beiden Knoten (QDomElement ist eine Unterklasse von QDomNode ) verweisen beide auf das Wurzelelement des Dokuments, und element1 == element2
gibt true zurück. Andererseits:
QDomElement element3 = document.createElement("MyElement"); QDomElement element4 = document.createElement("MyElement");
Obwohl es sich bei beiden Knoten um leere Elemente mit demselben Namen handelt, gibt element3 == element4
false zurück, weil sie auf zwei verschiedene Knoten in der zugrunde liegenden Datenstruktur verweisen.
Verwandte Nicht-Mitglieder
QTextStream &operator<<(QTextStream &str, const QDomNode &node)
Schreibt die XML-Darstellung des Knotens node und aller seiner Kinder in den Stream str.
© 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.