Sur cette page

QDomNode Class

La classe QDomNode est la classe de base pour tous les nœuds d'un arbre DOM. Plus d'informations...

En-tête : #include <QDomNode>
CMake : find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake : QT += xml
Héritée par :
10 types

QDomAttr QDomCharacterData, , , , , , , , et QDomDocument QDomDocumentFragment QDomDocumentType QDomElement QDomEntity QDomEntityReference QDomNotation QDomProcessingInstruction

Remarque : toutes les fonctions de cette classe sont réentrantes.

Types publics

enum EncodingPolicy { EncodingFromDocument, EncodingFromTextStream }
enum NodeType { ElementNode, AttributeNode, TextNode, CDATASectionNode, EntityReferenceNode, …, CharacterDataNode }

Fonctions publiques

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
QTextStream &operator<<(QTextStream &str, const QDomNode &node)

Description détaillée

De nombreuses fonctions du DOM renvoient un QDomNode.

Vous pouvez connaître le type d'un noeud en utilisant isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() et isComment().

Un QDomNode peut être converti en l'une de ses sous-classes en utilisant toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() ou toComment(). Vous pouvez convertir un nœud en nœud nul avec clear().

Les copies de la classe QDomNode partagent leurs données en utilisant le partage explicite. Cela signifie que la modification d'un nœud changera toutes les copies. Ceci est particulièrement utile en combinaison avec des fonctions qui renvoient un QDomNode, par exemple firstChild(). Vous pouvez faire une copie indépendante (profonde) du nœud avec cloneNode().

Un QDomNode peut être nul, tout comme nullptr. La création d'une copie d'un nœud nul donne un autre nœud nul. Il n'est pas possible de modifier un nœud nul, mais il est possible de lui assigner un autre nœud, éventuellement non nul. Dans ce cas, la copie du nœud nul restera nulle. Vous pouvez vérifier si un QDomNode est nul en appelant isNull(). Le constructeur vide d'un QDomNode (ou de toute autre classe dérivée) crée un nœud nul.

Les nœuds sont insérés avec insertBefore(), insertAfter() ou appendChild(). Vous pouvez remplacer un nœud par un autre en utilisant replaceChild() et supprimer un nœud avec removeChild().

Pour parcourir les nœuds, utilisez firstChild() pour obtenir le premier enfant d'un nœud (s'il y en a un), et nextSibling() pour parcourir. QDomNode fournit également lastChild(), previousSibling() et parentNode(). Pour trouver le premier nœud enfant d'un nom de nœud particulier, utilisez namedItem().

Pour savoir si un nœud a des enfants, utilisez hasChildNodes() et pour obtenir une liste de tous les enfants d'un nœud, utilisez childNodes().

Le nom et la valeur du nœud (dont la signification varie en fonction de son type) sont renvoyés respectivement par nodeName() et nodeValue(). Le type du nœud est renvoyé par nodeType(). La valeur du nœud peut être définie par setNodeValue().

Le document auquel le nœud appartient est renvoyé par ownerDocument().

Les nœuds QDomText adjacents peuvent être fusionnés en un seul nœud avec normalize().

QDomElement Les nœuds ont des attributs qui peuvent être récupérés avec attributes().

QDomElement Les nœuds QDomAttr et namespaceURI peuvent avoir des espaces de noms qui peuvent être récupérés avec (). Leur nom local est récupéré avec localName(), et leur préfixe avec prefix(). Le préfixe peut être défini avec setPrefix().

Vous pouvez écrire la représentation XML du nœud dans un flux de texte avec save().

L'exemple suivant recherche le premier élément d'un document XML et imprime les noms de tous les éléments qui sont ses enfants directs.

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();
}

Pour plus d'informations sur le modèle d'objet de document, voir les niveaux 1 et 2 du noyau. Pour une introduction plus générale à l'implémentation du DOM, voir la documentation QDomDocument.

Documentation sur les types de membres

enum QDomNode::EncodingPolicy

Cette énumération spécifie comment QDomNode::save() détermine l'encodage à utiliser lors de la sérialisation.

ConstanteValeurDescription
QDomNode::EncodingFromDocument1L'encodage est extrait du document.
QDomNode::EncodingFromTextStream2L'encodage est récupéré à partir de QTextStream.

Voir aussi QDomNode::save().

enum QDomNode::NodeType

Cette énumération définit le type de nœud :

ConstanteValeurDescription
QDomNode::ElementNode1
QDomNode::AttributeNode2
QDomNode::TextNode3
QDomNode::CDATASectionNode4
QDomNode::EntityReferenceNode5
QDomNode::EntityNode6
QDomNode::ProcessingInstructionNode7
QDomNode::CommentNode8
QDomNode::DocumentNode9
QDomNode::DocumentTypeNode10
QDomNode::DocumentFragmentNode11
QDomNode::NotationNode12
QDomNode::BaseNode21Un objet QDomNode, c'est-à-dire pas une sous-classe de QDomNode.
QDomNode::CharacterDataNode22

Documentation des fonctions membres

QDomNode::QDomNode()

Construit un nœud null.

QDomNode::QDomNode(const QDomNode &node)

Construit une copie de node.

Les données de la copie sont partagées (copie superficielle) : modifier un noeud modifiera également l'autre. Si vous voulez faire une copie profonde, utilisez cloneNode().

[noexcept] QDomNode::~QDomNode()

Détruit l'objet et libère ses ressources.

QDomNode QDomNode::appendChild(const QDomNode &newChild)

Ajoute newChild comme dernier enfant du noeud.

Si newChild est l'enfant d'un autre nœud, il est reparenté à ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est modifiée.

Si newChild est un QDomDocumentFragment, les enfants du fragment sont retirés du fragment et ajoutés.

Si newChild est un QDomElement et que ce nœud est un QDomDocument qui a déjà un nœud élément comme enfant, newChild n'est pas ajouté comme enfant et un nœud nul est renvoyé.

Renvoie une nouvelle référence à newChild en cas de succès ou à null node en cas d'échec.

L'appel de cette fonction à un nœud nul (créé, par exemple, avec le constructeur par défaut) ne fait rien et renvoie un null node.

La spécification DOM interdit l'insertion de nœuds d'attributs, mais pour des raisons historiques, QDom les accepte quand même.

Voir aussi insertBefore(), insertAfter(), replaceChild(), et removeChild().

QDomNamedNodeMap QDomNode::attributes() const

Renvoie une carte des nœuds nommés contenant tous les attributs. Les attributs ne sont fournis que pour les QDomElement.

La modification des attributs dans la carte modifiera également les attributs de ce site QDomNode.

QDomNodeList QDomNode::childNodes() const

Renvoie une liste de tous les nœuds enfants directs.

Le plus souvent, vous appellerez cette fonction sur un objet QDomElement.

Par exemple, si le document XML ressemble à ceci :

<body>
<h1>Heading</h1>
<p>Hello <b>you</b></p>
</body>

La liste des nœuds enfants de l'élément "body" contiendra le nœud créé par la balise &lt;h1&gt ; et le nœud créé par la balise &lt;p&gt ;.

Les nœuds de la liste ne sont pas copiés ; par conséquent, si l'on modifie les nœuds de la liste, les enfants de ce nœud seront également modifiés.

Voir aussi firstChild() et lastChild().

void QDomNode::clear()

Convertit le noeud en noeud nul ; s'il n'était pas un noeud nul auparavant, son type et son contenu sont supprimés.

Voir aussi isNull().

QDomNode QDomNode::cloneNode(bool deep = true) const

Crée une copie profonde (et non superficielle) de l'adresse QDomNode.

Si deep est vrai, le clonage est effectué de manière récursive, ce qui signifie que tous les enfants du nœud sont également copiés en profondeur. Si deep est faux, seul le nœud lui-même est copié et la copie n'aura pas de nœuds enfants.

int QDomNode::columnNumber() const

Pour les nœuds créés par QDomDocument::setContent(), cette fonction renvoie le numéro de colonne dans le document XML où le nœud a été analysé. Sinon, elle renvoie -1.

Voir aussi lineNumber() et QDomDocument::setContent().

QDomNode QDomNode::firstChild() const

Renvoie le premier enfant du nœud. S'il n'y a pas de nœud enfant, un null node est renvoyé. La modification du nœud retourné modifiera également le nœud dans l'arborescence du document.

Voir aussi lastChild() et childNodes().

QDomElement QDomNode::firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Renvoie le premier élément enfant avec le nom de balise tagName et l'URI de l'espace de noms namespaceURI. Si tagName est vide, il renvoie le premier élément enfant avec namespaceURI, et si namespaceURI est vide, il renvoie le premier élément enfant avec tagName. Si les deux paramètres sont vides, il renvoie le premier élément enfant. Renvoie un élément nul si aucun élément enfant n'existe.

Voir aussi lastChildElement(), previousSiblingElement() et nextSiblingElement().

bool QDomNode::hasAttributes() const

Renvoie true si le nœud a des attributs ; sinon, renvoie false.

Voir aussi attributes().

bool QDomNode::hasChildNodes() const

Renvoie true si le nœud a un ou plusieurs enfants ; sinon, renvoie false.

QDomNode QDomNode::insertAfter(const QDomNode &newChild, const QDomNode &refChild)

Insère le nœud newChild après le nœud enfant refChild. refChild doit être un enfant direct de ce nœud. Si refChild est null, newChild est ajouté en tant que dernier enfant de ce nœud.

Si newChild est l'enfant d'un autre nœud, il est réparti sur ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est modifiée.

Si newChild est un QDomDocumentFragment, les enfants du fragment sont retirés du fragment et insérés après refChild.

Renvoie une nouvelle référence à newChild en cas de succès ou à null node en cas d'échec.

La spécification DOM interdit l'insertion de nœuds d'attributs, mais pour des raisons historiques, QDom les accepte néanmoins.

Voir aussi insertBefore(), replaceChild(), removeChild(), et appendChild().

QDomNode QDomNode::insertBefore(const QDomNode &newChild, const QDomNode &refChild)

Insère le nœud newChild avant le nœud enfant refChild. refChild doit être un enfant direct de ce nœud. Si refChild est null, newChild est inséré en tant que premier enfant du nœud.

Si newChild est l'enfant d'un autre nœud, il est reparenté à ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est modifiée.

Si newChild est un QDomDocumentFragment, les enfants du fragment sont retirés du fragment et insérés avant refChild.

Renvoie une nouvelle référence à newChild en cas de succès ou à null node en cas d'échec.

La spécification DOM interdit l'insertion de nœuds d'attributs, mais pour des raisons historiques, QDom les accepte néanmoins.

Voir aussi insertAfter(), replaceChild(), removeChild(), et appendChild().

bool QDomNode::isAttr() const

Renvoie true si le nœud est un attribut, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomAttribute ; vous pouvez obtenir le QDomAttribute avec toAttribute().

Voir aussi toAttr().

bool QDomNode::isCDATASection() const

Renvoie true si le nœud est une section CDATA ; sinon, renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomCDATASection; vous pouvez obtenir le QDomCDATASection avec toCDATASection().

Voir aussi toCDATASection().

bool QDomNode::isCharacterData() const

Renvoie true si le nœud est un nœud de données de caractères ; sinon, renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomCharacterData; vous pouvez obtenir le QDomCharacterData avec toCharacterData().

Voir aussi toCharacterData().

bool QDomNode::isComment() const

Renvoie true si le nœud est un commentaire, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomComment; vous pouvez obtenir le QDomComment avec toComment().

Voir aussi toComment().

bool QDomNode::isDocument() const

Renvoie true si le nœud est un document ; sinon, renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomDocument; vous pouvez obtenir le QDomDocument avec toDocument().

Voir aussi toDocument().

bool QDomNode::isDocumentFragment() const

Renvoie true si le nœud est un fragment de document, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomDocumentFragment; vous pouvez obtenir le QDomDocumentFragment avec toDocumentFragment().

Voir aussi toDocumentFragment().

bool QDomNode::isDocumentType() const

Renvoie true si le nœud est un type de document, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomDocumentType; vous pouvez obtenir le QDomDocumentType avec toDocumentType().

Voir aussi toDocumentType().

bool QDomNode::isElement() const

Renvoie true si le nœud est un élément, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomElement; vous pouvez obtenir le QDomElement avec toElement().

Voir aussi toElement().

bool QDomNode::isEntity() const

Renvoie true si le nœud est une entité ; sinon, renvoie false.

Si cette fonction renvoie true, cela n'implique pas que cet objet soit un QDomEntity; vous pouvez obtenir le QDomEntity avec toEntity().

Voir aussi toEntity().

bool QDomNode::isEntityReference() const

Renvoie true si le nœud est une référence d'entité, sinon renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomEntityReference; vous pouvez obtenir le QDomEntityReference avec toEntityReference().

Voir aussi toEntityReference().

bool QDomNode::isNotation() const

Renvoie true si le nœud est une notation ; sinon, renvoie false.

Si cette fonction renvoie true, cela n'implique pas que cet objet soit un QDomNotation; vous pouvez obtenir le QDomNotation avec toNotation().

Voir aussi toNotation().

bool QDomNode::isNull() const

Renvoie true si ce nœud est nul (c'est-à-dire s'il n'a pas de type ou de contenu) ; sinon, renvoie false.

bool QDomNode::isProcessingInstruction() const

Renvoie true si le nœud est une instruction de traitement ; sinon, renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomProcessingInstruction; vous pouvez obtenir la QProcessingInstruction avec toProcessingInstruction().

Voir aussi toProcessingInstruction().

bool QDomNode::isSupported(const QString &feature, const QString &version) const

Retourne true si l'implémentation DOM implémente la fonctionnalité feature et que cette fonctionnalité est supportée par ce noeud dans la version version; sinon retourne false.

Voir aussi QDomImplementation::hasFeature().

bool QDomNode::isText() const

Renvoie true si le nœud est un nœud de texte ; sinon, renvoie false.

Si cette fonction renvoie true, cela ne signifie pas que cet objet est un QDomText; vous pouvez obtenir le QDomText avec toText().

Voir aussi toText().

QDomNode QDomNode::lastChild() const

Renvoie le dernier enfant du nœud. S'il n'y a pas de nœud enfant, un null node est renvoyé. La modification du nœud retourné modifiera également le nœud dans l'arborescence du document.

Voir aussi firstChild() et childNodes().

QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Renvoie le dernier élément enfant avec le nom de balise tagName et l'URI de l'espace de noms namespaceURI. Si tagName est vide, il renvoie le dernier élément enfant avec namespaceURI, et si namespaceURI est vide, il renvoie le dernier élément enfant avec tagName. Si les deux paramètres sont vides, il renvoie le dernier élément enfant. Renvoie un élément nul si aucun enfant de ce type n'existe.

Voir aussi firstChildElement(), previousSiblingElement() et nextSiblingElement().

int QDomNode::lineNumber() const

Pour les nœuds créés par QDomDocument::setContent(), cette fonction renvoie le numéro de ligne dans le document XML où le nœud a été analysé. Sinon, elle renvoie -1.

Voir aussi columnNumber() et QDomDocument::setContent().

QString QDomNode::localName() const

Si le nœud utilise des espaces de noms, cette fonction renvoie le nom local du nœud ; sinon, elle renvoie une chaîne vide.

Seuls les nœuds de type ElementNode ou AttributeNode peuvent avoir des espaces de noms. Un espace de noms doit avoir été spécifié au moment de la création ; il n'est pas possible d'ajouter un espace de noms par la suite.

Voir aussi prefix(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().

QDomNode QDomNode::namedItem(const QString &name) const

Renvoie le premier nœud enfant direct pour lequel nodeName() est égal à name.

S'il n'existe aucun nœud fils direct de ce type, null node est renvoyé.

Voir aussi nodeName().

QString QDomNode::namespaceURI() const

Renvoie l'URI de l'espace de noms de ce nœud ou une chaîne vide si le nœud n'a pas d'URI d'espace de noms.

Seuls les nœuds de type ElementNode ou AttributeNode peuvent avoir un espace de noms. L'URI de l'espace de noms doit être spécifié au moment de la création et ne peut être modifié ultérieurement.

Voir aussi prefix(), localName(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().

QDomNode QDomNode::nextSibling() const

Renvoie le frère suivant dans l'arborescence du document. La modification du nœud retourné modifiera également le nœud dans l'arbre du document.

Si vous avez un XML comme celui-ci :

<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>

et que cette adresse QDomNode représente la balise <p>, nextSibling() renverra le nœud représentant la balise <h2>.

Voir également previousSibling().

QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Renvoie l'élément frère suivant avec le nom de balise tagName et l'URI de l'espace de noms namespaceURI. Si tagName est vide, il renvoie l'élément frère suivant avec namespaceURI, et si namespaceURI est vide, il renvoie l'élément enfant frère suivant avec tagName. Si les deux paramètres sont vides, il renvoie l'élément frère suivant. Renvoie un élément nul s'il n'existe pas de frère ou de sœur.

Voir aussi firstChildElement(), previousSiblingElement() et lastChildElement().

QString QDomNode::nodeName() const

Renvoie le nom du nœud.

La signification du nom dépend de la sous-classe :

NomSignification
QDomAttrLe nom de l'attribut
QDomCDATASectionLa chaîne "#cdata-section"
QDomCommentLa chaîne "#comment"
QDomDocumentLa chaîne "#document"
QDomDocumentFragmentLa chaîne "#document-fragment"
QDomDocumentTypeLe nom du type de document
QDomElementLe nom de la balise
QDomEntityLe nom de l'entité
QDomEntityReferenceLe nom de l'entité référencée
QDomNotationLe nom de la notation
QDomProcessingInstructionLa cible de l'instruction de traitement
QDomTextLa chaîne "#text"

Note : Cette fonction ne tient pas compte de la présence d'espaces de noms lors du traitement des noms des nœuds d'éléments et d'attributs. Par conséquent, le nom renvoyé peut contenir n'importe quel préfixe d'espace de noms présent. Pour obtenir le nom de nœud d'un élément ou d'un attribut, utilisez localName() ; pour obtenir le préfixe d'espace de noms, utilisez namespaceURI().

Voir également nodeValue().

QDomNode::NodeType QDomNode::nodeType() const

Renvoie le type du nœud.

Voir aussi toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData(), et toComment().

QString QDomNode::nodeValue() const

Renvoie la valeur du nœud.

La signification de la valeur dépend de la sous-classe :

NomSignification
QDomAttrLa valeur de l'attribut
QDomCDATASectionLe contenu de la section CDATA
QDomCommentLe commentaire
QDomProcessingInstructionLes données de l'instruction de traitement
QDomTextLe texte

Toutes les autres sous-classes n'ont pas de valeur de nœud et renvoient une chaîne vide.

Voir aussi setNodeValue() et nodeName().

void QDomNode::normalize()

L'appel à normalize() sur un élément convertit tous ses enfants en une forme standard. Cela signifie que les objets QDomText adjacents seront fusionnés en un seul objet texte (les nœudsQDomCDATASection ne sont pas fusionnés).

QDomDocument QDomNode::ownerDocument() const

Renvoie le document auquel appartient ce nœud.

QDomNode QDomNode::parentNode() const

Renvoie le nœud parent. Si ce nœud n'a pas de parent, un nœud nul est renvoyé (c'est-à-dire un nœud pour lequel isNull() renvoie true).

QString QDomNode::prefix() const

Renvoie le préfixe d'espace de noms du noeud ou une chaîne vide si le noeud n'a pas de préfixe d'espace de noms.

Seuls les nœuds de type ElementNode ou AttributeNode peuvent avoir des espaces de noms. Un préfixe d'espace de noms doit être spécifié au moment de la création. Si un nœud a été créé avec un préfixe d'espace de noms, vous pouvez le modifier ultérieurement à l'aide de setPrefix().

Si vous créez un élément ou un attribut avec QDomDocument::createElement() ou QDomDocument::createAttribute(), le préfixe sera une chaîne vide. Si vous utilisez QDomDocument::createElementNS() ou QDomDocument::createAttributeNS() à la place, le préfixe ne sera pas une chaîne vide, mais il pourrait être une chaîne vide si le nom n'a pas de préfixe.

Voir aussi setPrefix(), localName(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().

QDomNode QDomNode::previousSibling() const

Renvoie le frère précédent dans l'arborescence du document. La modification du nœud retourné entraînera également la modification du nœud dans l'arborescence du document.

Par exemple, si vous avez un XML comme celui-ci :

<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>

et que ce QDomNode représente la balise &lt;p&gt ;, previousSibling() renverra le nœud représentant la balise &lt;h1&gt ;.

Voir également nextSibling().

QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const

Renvoie l'élément frère précédent avec le nom de balise tagName et l'URI de l'espace de noms namespaceURI. Si tagName est vide, il renvoie l'élément frère précédent avec namespaceURI, et si namespaceURI est vide, il renvoie l'élément frère précédent avec tagName. Si les deux paramètres sont vides, il renvoie l'élément frère précédent. Renvoie un élément nul s'il n'existe pas de frère ou de sœur de ce type.

Voir aussi firstChildElement(), nextSiblingElement() et lastChildElement().

QDomNode QDomNode::removeChild(const QDomNode &oldChild)

Supprime oldChild de la liste des enfants. oldChild doit être un enfant direct de ce noeud.

Renvoie une nouvelle référence à oldChild en cas de succès ou à null node en cas d'échec.

Voir aussi insertBefore(), insertAfter(), replaceChild() et appendChild().

QDomNode QDomNode::replaceChild(const QDomNode &newChild, const QDomNode &oldChild)

Remplace oldChild par newChild. oldChild doit être un enfant direct de ce nœud.

Si newChild est l'enfant d'un autre nœud, il est reparenté à ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est modifiée.

Si newChild est un QDomDocumentFragment, alors oldChild est remplacé par tous les enfants du fragment.

Renvoie une nouvelle référence à oldChild en cas de succès ou à null node en cas d'échec.

Voir aussi insertBefore(), insertAfter(), removeChild() et appendChild().

void QDomNode::save(QTextStream &stream, int indent, QDomNode::EncodingPolicy encodingPolicy = QDomNode::EncodingFromDocument) const

Écrit la représentation XML du nœud et de tous ses enfants dans le flux stream. Cette fonction utilise indent comme espace pour indenter le noeud.

Si le document contient des caractères XML non valides ou des caractères qui ne peuvent pas être encodés dans l'encodage donné, le résultat et le comportement sont indéfinis.

Si encodingPolicy est QDomNode::EncodingFromDocument et que ce nœud est un nœud de document, le codage du flux de texte stream est défini en traitant une instruction de traitement portant le nom "xml" comme une déclaration XML, s'il en existe une, et sinon il est par défaut UTF-8. Les déclarations XML ne sont pas des instructions de traitement, mais ce comportement existe pour des raisons historiques. Si ce nœud n'est pas un nœud de document, l'encodage du flux de texte est utilisé.

Si encodingPolicy est EncodingFromTextStream et que ce noeud est un noeud de document, cette fonction se comporte comme save(QTextStream &str, int indent) à l'exception du fait que l'encodage spécifié dans le flux de texte stream est utilisé.

Si le document contient des caractères XML non valides ou des caractères qui ne peuvent pas être encodés dans l'encodage donné, le résultat et le comportement sont indéfinis.

void QDomNode::setNodeValue(const QString &value)

Fixe la valeur du nœud à value.

Voir aussi nodeValue().

void QDomNode::setPrefix(const QString &pre)

Si le nœud a un préfixe d'espace de noms, cette fonction change le préfixe d'espace de noms du nœud en pre. Sinon, cette fonction ne fait rien.

Seuls les nœuds de type ElementNode ou AttributeNode peuvent avoir des espaces de noms. Un préfixe d'espace de noms doit être spécifié au moment de la création ; il n'est pas possible d'ajouter un préfixe d'espace de noms par la suite.

Voir aussi prefix(), localName(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().

QDomAttr QDomNode::toAttr() const

Convertit un QDomNode en QDomAttr. Si le nœud n'est pas un attribut, l'objet retourné sera null.

Voir aussi isAttr().

QDomCDATASection QDomNode::toCDATASection() const

Convertit un QDomNode en QDomCDATASection. Si le nœud n'est pas une section CDATA, l'objet retourné sera null.

Voir aussi isCDATASection().

QDomCharacterData QDomNode::toCharacterData() const

Convertit un QDomNode en QDomCharacterData. Si le noeud n'est pas un noeud de données de caractères, l'objet retourné sera null.

Voir aussi isCharacterData().

QDomComment QDomNode::toComment() const

Convertit un QDomNode en QDomComment. Si le noeud n'est pas un commentaire, l'objet retourné sera null.

Voir aussi isComment().

QDomDocument QDomNode::toDocument() const

Convertit un QDomNode en QDomDocument. Si le noeud n'est pas un document, l'objet retourné sera null.

Voir aussi isDocument().

QDomDocumentFragment QDomNode::toDocumentFragment() const

Convertit un QDomNode en QDomDocumentFragment. Si le noeud n'est pas un fragment de document, l'objet retourné sera null.

Voir aussi isDocumentFragment().

QDomDocumentType QDomNode::toDocumentType() const

Convertit un QDomNode en QDomDocumentType. Si le noeud n'est pas un type de document, l'objet retourné sera null.

Voir aussi isDocumentType().

QDomElement QDomNode::toElement() const

Convertit un QDomNode en QDomElement. Si le noeud n'est pas un élément, l'objet retourné sera null.

Voir aussi isElement().

QDomEntity QDomNode::toEntity() const

Convertit un QDomNode en QDomEntity. Si le noeud n'est pas une entité, l'objet retourné sera null.

Voir aussi isEntity().

QDomEntityReference QDomNode::toEntityReference() const

Convertit un QDomNode en QDomEntityReference. Si le noeud n'est pas une référence d'entité, l'objet retourné sera null.

Voir aussi isEntityReference().

QDomNotation QDomNode::toNotation() const

Convertit un QDomNode en QDomNotation. Si le noeud n'est pas une notation, l'objet retourné sera null.

Voir aussi isNotation().

QDomProcessingInstruction QDomNode::toProcessingInstruction() const

Convertit un QDomNode en QDomProcessingInstruction. Si le noeud n'est pas une instruction de traitement, l'objet retourné sera null.

Voir aussi isProcessingInstruction().

QDomText QDomNode::toText() const

Convertit un QDomNode en QDomText. Si le noeud n'est pas un texte, l'objet retourné sera null.

Voir aussi isText().

bool QDomNode::operator!=(const QDomNode &other) const

Renvoie true si other et ce nœud DOM ne sont pas égaux ; sinon, renvoie false.

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

Assigne une copie de other à ce nœud du DOM.

Les données de la copie sont partagées (copie superficielle) : modifier un noeud modifiera également l'autre. Si vous voulez faire une copie profonde, utilisez cloneNode().

bool QDomNode::operator==(const QDomNode &other) const

Retourne true si other et ce noeud DOM sont égaux ; sinon retourne false.

Toute instance de QDomNode agit comme une référence à une structure de données sous-jacente dans QDomDocument. Le test d'égalité vérifie si les deux références pointent vers le même nœud sous-jacent. Par exemple, le test d'égalité vérifie si les deux références pointent vers le même nœud sous-jacent :

QDomDocument document;
QDomElement element1 = document.documentElement();
QDomElement element2 = element1;

Les deux nœuds (QDomElement est une sous-classe de QDomNode ) font tous deux référence à l'élément racine du document, et element1 == element2 renverra true. D'autre part, même si les deux nœuds sont des éléments vides, ils renvoient une réponse positive :

QDomElement element3 = document.createElement("MyElement");
QDomElement element4 = document.createElement("MyElement");

Même si les deux nœuds sont des éléments vides portant le même nom, element3 == element4 renverra un message faux car ils font référence à deux nœuds différents dans la structure de données sous-jacente.

Non-membres apparentés

QTextStream &operator<<(QTextStream &str, const QDomNode &node)

Écrit la représentation XML du nœud node et de tous ses enfants dans le flux str.

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