QDomNode Class
La classe `QDomNode` est la classe de base de tous les nœuds d'un arbre DOM. En savoir plus...
| En-tête : | #include <QDomNode> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Xml) target_link_libraries(mytarget PRIVATE Qt6::Xml) |
| qmake : | QT += xml |
| Hérité par : |
- Liste de tous les membres, y compris les membres hérités
- QDomNode fait partie des classes XML.
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 |
Éléments non membres associés
| QTextStream & | operator<<(QTextStream &str, const QDomNode &node) |
Description détaillée
De nombreuses fonctions du DOM renvoient un QDomNode.
Vous pouvez déterminer le type d’un nœud à l’aide des méthodes suivantes : 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 à l’aide de 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 via un partage explicite. Cela signifie que la modification d’un nœud entraînera la modification de toutes les copies. Ceci est particulièrement utile en combinaison avec des fonctions qui renvoient un `QDomNode`, par exemple ` firstChild()`. Vous pouvez effectuer une copie indépendante (profonde) du nœud à l’aide de ` cloneNode()`.
Un QDomNode peut être nul, tout comme nullptr. La création d’une copie d’un nœud nul donne lieu à un autre nœud nul. Il n’est pas possible de modifier un nœud nul, mais il est possible de lui attribuer un autre nœud, éventuellement non nul. Dans ce cas, la copie du nœud null restera null. Vous pouvez vérifier si un QDomNode est null en appelant la méthode isNull(). Le constructeur vide d’un QDomNode (ou de l’une de ses classes dérivées) crée un nœud null.
Les nœuds sont insérés à l’aide de ` insertBefore()`, ` insertAfter()` ou ` appendChild()`. Vous pouvez remplacer un nœud par un autre à l’aide de ` replaceChild()` et supprimer un nœud à l’aide de ` removeChild()`.
Pour parcourir les nœuds, utilisez firstChild() pour obtenir le premier enfant d’un nœud (le cas échéant), et nextSibling() pour effectuer le parcours. QDomNode fournit également les méthodes lastChild(), previousSibling() et parentNode(). Pour trouver le premier nœud enfant portant un nom de nœud particulier, utilisez namedItem().
Pour savoir si un nœud possède des enfants, utilisez ` hasChildNodes()` et pour obtenir la 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 à l'aide de setNodeValue().
Le document auquel appartient le nœud est renvoyé par la fonction ownerDocument().
Les nœuds QDomText adjacents peuvent être fusionnés en un seul nœud à l’aide de normalize().
QDomElement Les nœuds possèdent des attributs qui peuvent être récupérés à l’aide de la fonction attributes().
QDomElement Les nœuds de type « QDomAttr » peuvent posséder des espaces de noms qui peuvent être récupérés à l’aide de la fonction « namespaceURI() ». Leur nom local est récupéré à l’aide de la fonction « localName() », et leur préfixe à l’aide de la fonction « prefix() ». Le préfixe peut être défini à l’aide de la fonction « setPrefix() ».
Vous pouvez écrire la représentation XML du nœud dans un flux de texte à l’aide de ` save()` ().
L'exemple suivant recherche le premier élément d’un document XML et affiche 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 objet de document (DOM), consultez les sections « Level 1 » et « Level 2 Core ». Pour une introduction plus générale à l’implémentation du DOM, consultez la documentation relative à QDomDocument.
Documentation sur les types de membres
enum QDomNode::EncodingPolicy
Cette énumération spécifie comment la méthode ` QDomNode::save()` détermine l'encodage à utiliser lors de la sérialisation.
| Constante | Valeur | Description |
|---|---|---|
QDomNode::EncodingFromDocument | 1 | L'encodage est extrait du document. |
QDomNode::EncodingFromTextStream | 2 | L'encodage est récupéré à partir de la fonction QTextStream(). |
Voir aussi QDomNode::save().
enum QDomNode::NodeType
Cette énumération définit le type du nœud :
| Constante | Valeur | Description |
|---|---|---|
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 | Un objet de type « QDomNode », c'est-à-dire qui n'est pas une sous-classe de « QDomNode ». |
QDomNode::CharacterDataNode | 22 |
Documentation des fonctions membres
QDomNode::QDomNode()
Crée un nœud « null ».
QDomNode::QDomNode(const QDomNode &node)
Crée une copie de ` node`.
Les données de la copie sont partagées (copie superficielle) : la modification d'un nœud entraîne également la modification de l'autre. Si vous souhaitez effectuer 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 en tant que dernier enfant du nœud.
Si newChild est un enfant d’un autre nœud, il est rattaché à 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 de ce fragment sont alors retirés du fragment et ajoutés à la fin.
Si newChild est un QDomElement et que ce nœud est un QDomDocument qui possède déjà un nœud élément en tant que fils, newChild n’est pas ajouté en tant que fils et un nœud nul est renvoyé.
Renvoie une nouvelle référence à newChild en cas de succès ou un null node en cas d’échec.
L'appel de cette fonction sur un nœud null (créé, par exemple, avec le constructeur par défaut) n'a aucun effet et renvoie un null node.
La spécification DOM interdit l’insertion de nœuds d’attribut, mais pour des raisons historiques, QDom les accepte quand même.
Voir également insertBefore(), insertAfter(), replaceChild() et removeChild().
QDomNamedNodeMap QDomNode::attributes() const
Renvoie une carte de nœuds nommés contenant tous les attributs. Les attributs ne sont fournis que pour les QDomElement.
La modification des attributs dans cette carte entraînera également la modification des attributs de cet « 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 de type « QDomElement ».
Par exemple, si le document XML se présente comme suit :
<body>
<h1>Heading</h1>
<p>Hello <b>you</b></p>
</body>alors la liste des nœuds enfants de l'élément « body » contiendra le nœud créé par la balise <h1> et celui créé par la balise <p>.
Les nœuds de la liste ne sont pas copiés ; par conséquent, la modification des nœuds de la liste entraînera également la modification des enfants de ce nœud.
Voir également firstChild() et lastChild().
void QDomNode::clear()
Convertit le nœud en nœud nul ; s'il n'était pas encore un nœud nul, 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'QDomNode.
Si deep est vrai, le clonage s'effectue 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 ne comportera aucun nœud enfant.
int QDomNode::columnNumber() const
Pour les nœuds créés par la fonction QDomDocument::setContent(), cette fonction renvoie le numéro de colonne dans le document XML où le nœud a été analysé. Dans le cas contraire, elle renvoie -1.
Voir également 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, une exception « null node » est renvoyée. La modification du nœud renvoyé entraîne également la modification du nœud dans l'arborescence du document.
Voir également lastChild() et childNodes().
QDomElement QDomNode::firstChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Renvoie le premier élément enfant dont le nom de balise est tagName et dont l'URI d'espace de noms est namespaceURI. Si tagName est vide, renvoie le premier élément enfant dont l'URI d'espace de noms est namespaceURI; si namespaceURI est vide, renvoie le premier élément enfant dont l'URI d'espace de noms est tagName. Si les deux paramètres sont vides, renvoie le premier élément enfant. Renvoie un élément nul si aucun élément enfant de ce type n'existe.
Voir également lastChildElement(), previousSiblingElement() et nextSiblingElement().
bool QDomNode::hasAttributes() const
Renvoie « true » si le nœud possède des attributs ; sinon, renvoie « false ».
Voir aussi attributes().
bool QDomNode::hasChildNodes() const
Renvoie « true » si le nœud possède 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, alors newChild est ajouté en tant que dernier enfant de ce nœud.
Si newChild est un enfant d'un autre nœud, il est rattaché à 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 supprimés de celui-ci et insérés après refChild.
Renvoie une nouvelle référence à newChild en cas de succès ou un null node en cas d’échec.
La spécification DOM interdit l'insertion de nœuds d'attribut, mais pour des raisons historiques, QDom les accepte néanmoins.
Voir également 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, alors newChild est inséré en tant que premier enfant du nœud.
Si newChild est un enfant d’un autre nœud, il est rattaché à ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est alors modifiée.
Si newChild est un QDomDocumentFragment, les enfants du fragment sont alors supprimés de celui-ci et insérés avant refChild.
Renvoie une nouvelle référence à newChild en cas de succès ou un null node en cas d’échec.
La spécification DOM interdit l’insertion de nœuds d’attribut, mais pour des raisons historiques, QDom les accepte néanmoins.
Voir également 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 pour autant que cet objet est un QDomAttribute ; vous pouvez obtenir le QDomAttribute à l'aide de toAttribute().
Voir également 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 pour autant que cet objet est un « QDomCDATASection » ; vous pouvez obtenir l’« QDomCDATASection » à l’aide de « toCDATASection() ».
Voir également toCDATASection().
bool QDomNode::isCharacterData() const
Renvoie « true » si le nœud est un nœud de données de type caractère ; sinon, renvoie « false ».
Si cette fonction renvoie true, cela ne signifie pas pour autant que cet objet est un QDomCharacterData; vous pouvez obtenir l’ QDomCharacterData à l’aide de toCharacterData().
Voir également 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 pour autant que cet objet est un QDomComment; vous pouvez obtenir l'QDomComment à l'aide de toComment().
Voir également 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 pour autant que cet objet est un QDomDocument; vous pouvez obtenir l'QDomDocument à l'aide de toDocument().
Voir également 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 pour autant que cet objet est un « QDomDocumentFragment » ; vous pouvez obtenir l’« QDomDocumentFragment » à l’aide de « toDocumentFragment() ».
Voir également toDocumentFragment().
bool QDomNode::isDocumentType() const
Renvoie « true » si le nœud est de type document ; sinon, renvoie « false ».
Si cette fonction renvoie « true », cela ne signifie pas pour autant que cet objet est un « QDomDocumentType » ; vous pouvez obtenir l’« QDomDocumentType » à l’aide de « toDocumentType() ».
Voir également 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 pour autant que cet objet est un QDomElement; vous pouvez obtenir l'QDomElement à l'aide de toElement().
Voir également toElement().
bool QDomNode::isEntity() const
Renvoie ` true ` si le nœud est une entité ; sinon, renvoie ` false`.
Si cette fonction renvoie « true », cela ne signifie pas pour autant que cet objet est un « QDomEntity » ; vous pouvez obtenir le « QDomEntity » à l'aide de « toEntity() ».
Voir également 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 pour autant que cet objet est un « QDomEntityReference » ; vous pouvez obtenir l'« QDomEntityReference » à l'aide de « toEntityReference() ».
Voir également toEntityReference().
bool QDomNode::isNotation() const
Renvoie true si le nœud est une notation ; sinon, renvoie false.
Si cette fonction renvoie true, cela ne signifie pas pour autant que cet objet est un QDomNotation; vous pouvez obtenir l’ QDomNotation à l’aide de toNotation().
Voir également toNotation().
bool QDomNode::isNull() const
Renvoie « true » si ce nœud est nul (c'est-à-dire s'il n'a ni type ni 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 pour autant que cet objet est un « QDomProcessingInstruction » ; vous pouvez obtenir le « QProcessingInstruction » à l'aide de « toProcessingInstruction() ».
Voir également toProcessingInstruction().
bool QDomNode::isSupported(const QString &feature, const QString &version) const
Renvoie « true » si l'implémentation DOM prend en charge la fonctionnalité « feature » et si cette fonctionnalité est prise en charge par ce nœud dans la version « version » ; sinon, renvoie « false ».
Voir également 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 pour autant que cet objet est un « QDomText » ; vous pouvez obtenir la valeur « QDomText » à l’aide de la fonction « toText() ».
Voir également toText().
QDomNode QDomNode::lastChild() const
Renvoie le dernier enfant du nœud. S'il n'y a pas de nœud enfant, une exception « null node » est levée. La modification du nœud renvoyé entraîne également la modification du nœud dans l'arborescence du document.
Voir également firstChild() et childNodes().
QDomElement QDomNode::lastChildElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Renvoie le dernier élément enfant dont le nom de balise est tagName et dont l'URI d'espace de noms est namespaceURI. Si tagName est vide, renvoie le dernier élément enfant dont l'URI d'espace de noms est namespaceURI; si namespaceURI est vide, renvoie le dernier élément enfant dont l'URI d'espace de noms est tagName. Si les deux paramètres sont vides, renvoie le dernier élément enfant. Renvoie un élément nul si aucun élément enfant de ce type n'existe.
Voir également firstChildElement(), previousSiblingElement() et nextSiblingElement().
int QDomNode::lineNumber() const
Pour les nœuds créés par la fonction QDomDocument::setContent(), cette fonction renvoie le numéro de ligne du document XML à laquelle le nœud a été analysé. Dans le cas contraire, elle renvoie -1.
Voir également 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 disposer d’espaces de noms. Un espace de noms doit avoir été spécifié lors de la création ; il n’est pas possible d’ajouter un espace de noms par la suite.
Voir également prefix(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().
QDomNode QDomNode::namedItem(const QString &name) const
Renvoie le premier nœud enfant direct pour lequel la fonction ` nodeName()` renvoie ` name`.
Si aucun nœud enfant direct de ce type n'existe, la fonction renvoie une valeur « null node ».
Voir aussi nodeName().
QString QDomNode::namespaceURI() const
Renvoie l'URI d'espace de noms de ce nœud ou une chaîne vide si le nœud ne possède pas d'URI d'espace de noms.
Seuls les nœuds de type ElementNode ou AttributeNode peuvent avoir des espaces de noms. Un URI d'espace de noms doit être spécifié lors de la création et ne peut pas être modifié par la suite.
Voir également prefix(), localName(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().
QDomNode QDomNode::nextSibling() const
Renvoie le nœud frère suivant dans l'arborescence du document. La modification du nœud renvoyé entraînera également la modification du nœud dans l'arborescence du document.
Si vous disposez d'un code XML tel que celui-ci :
<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>et que QDomNode représente la balise <p>, la fonction nextSibling() renverra le nœud représentant la balise <h2>.
Voir aussi previousSibling().
QDomElement QDomNode::nextSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Renvoie l'élément frère suivant dont le nom de balise est tagName et l'URI d'espace de noms namespaceURI. Si tagName est vide, renvoie l'élément frère suivant dont l'URI d'espace de noms est namespaceURI; si namespaceURI est vide, renvoie l'élément enfant frère suivant dont l'URI d'espace de noms est tagName. Si les deux paramètres sont vides, renvoie l'élément frère suivant. Renvoie un élément nul si aucun élément frère de ce type n'existe.
Voir également firstChildElement(), previousSiblingElement() et lastChildElement().
QString QDomNode::nodeName() const
Renvoie le nom du nœud.
La signification du nom dépend de la sous-classe :
| Nom | Signification |
|---|---|
| QDomAttr | Le nom de l'attribut |
| QDomCDATASection | La chaîne « #cdata-section » |
| QDomComment | La chaîne « #comment » |
| QDomDocument | La chaîne « #document » |
| QDomDocumentFragment | La chaîne « #document-fragment » |
| QDomDocumentType | Le nom du type de document |
| QDomElement | Le nom de la balise |
| QDomEntity | Le nom de l'entité |
| QDomEntityReference | Le nom de l'entité référencée |
| QDomNotation | Le nom de la notation |
| QDomProcessingInstruction | La cible de l'instruction de traitement |
| QDomText | La chaîne « #text » |
Remarque : cette fonction ne tient pas compte de la présence d'espaces de noms lors du traitement des noms des nœuds d'élément et d'attribut. Par conséquent, le nom renvoyé peut contenir n'importe quel préfixe d'espace de noms éventuellement 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 également 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 cette valeur dépend de la sous-classe :
| Nom | Signification |
|---|---|
| QDomAttr | La valeur de l'attribut |
| QDomCDATASection | Le contenu de la section CDATA |
| QDomComment | Le commentaire |
| QDomProcessingInstruction | Les données de l'instruction de traitement |
| QDomText | Le texte |
Toutes les autres sous-classes n'ont pas de valeur de nœud et renvoient une chaîne vide.
Voir également setNodeValue() et nodeName().
void QDomNode::normalize()
L'appel de la fonction `normalize()` sur un élément convertit tous ses enfants en un format standard. Cela signifie que les objets ` QDomText ` adjacents seront fusionnés en un seul objet texte (les nœuds `QDomCDATASection ` 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 la méthode isNull() renvoie true).
QString QDomNode::prefix() const
Renvoie le préfixe d'espace de noms du nœud ou une chaîne vide si le nœud 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é lors 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 la fonction 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 plutôt QDomDocument::createElementNS() ou QDomDocument::createAttributeNS(), le préfixe ne sera pas une chaîne vide ; mais il pourrait s’agir d’une chaîne vide si le nom ne comporte pas de préfixe.
Voir également setPrefix(), localName(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().
QDomNode QDomNode::previousSibling() const
Renvoie le nœud frère précédent dans l'arborescence du document. La modification du nœud renvoyé entraînera également la modification du nœud dans l'arborescence du document.
Par exemple, si vous avez un code XML comme celui-ci :
<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>et que QDomNode représente la balise <p>, la fonction previousSibling() renverra le nœud représentant la balise <h1>.
Voir également nextSibling().
QDomElement QDomNode::previousSiblingElement(const QString &tagName = QString(), const QString &namespaceURI = QString()) const
Renvoie l'élément frère précédent dont le nom de balise est tagName et l'URI d'espace de noms namespaceURI. Si tagName est vide, renvoie l'élément frère précédent dont l'URI d'espace de noms est namespaceURI; si namespaceURI est vide, renvoie l'élément frère précédent dont l'URI d'espace de noms est tagName. Si les deux paramètres sont vides, renvoie l'élément frère précédent. Renvoie un élément nul si aucun élément frère de ce type n'existe.
Voir également 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 nœud.
Renvoie une nouvelle référence à oldChild en cas de réussite, ou un null node en cas d’échec.
Voir également 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 un enfant d’un autre nœud, il est rattaché à ce nœud. Si newChild est un enfant de ce nœud, sa position dans la liste des enfants est alors modifiée.
Si newChild est un QDomDocumentFragment, alors oldChild est remplacé par l'ensemble des enfants du fragment.
Renvoie une nouvelle référence à oldChild en cas de succès ou une null node en cas d’échec.
Voir également 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 valeur pour l'espacement de l'indentation du nœud.
Si le document contient des caractères XML non valides ou des caractères qui ne peuvent pas être encodés dans l’encodage spécifié, le résultat et le comportement sont indéfinis.
Si encodingPolicy est égal à QDomNode::EncodingFromDocument et que ce nœud est un nœud de document, l’encodage du flux de texte stream est défini en traitant une instruction de traitement nommée « xml » comme une déclaration XML, si celle-ci existe ; dans le cas contraire, la valeur par défaut est 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, c’est l’encodage du flux de texte qui est utilisé.
Si encodingPolicy est EncodingFromTextStream et que ce nœud est un nœud de document, cette fonction se comporte comme save(QTextStream &str, int indent), à l’exception 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)
Définit la valeur du nœud sur value.
Voir aussi nodeValue().
void QDomNode::setPrefix(const QString &pre)
Si le nœud possède un préfixe d'espace de noms, cette fonction remplace ce préfixe par « pre ». Dans le cas contraire, 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é lors de la création ; il n'est pas possible d'ajouter un préfixe d'espace de noms par la suite.
Voir également prefix(), localName(), namespaceURI(), QDomDocument::createElementNS() et QDomDocument::createAttributeNS().
QDomAttr QDomNode::toAttr() const
Convertit un objet ` QDomNode ` en un objet ` QDomAttr`. Si le nœud n'est pas un attribut, l'objet renvoyé sera ` null`.
Voir également isAttr().
QDomCDATASection QDomNode::toCDATASection() const
Convertit une balise « QDomNode » en une balise « QDomCDATASection ». Si la balise n'est pas une section CDATA, l'objet renvoyé sera « null ».
Voir également isCDATASection().
QDomCharacterData QDomNode::toCharacterData() const
Convertit un nœud de type « QDomNode » en un nœud de type « QDomCharacterData ». Si le nœud n'est pas un nœud de données de type « character », l'objet renvoyé sera de type « null ».
Voir également isCharacterData().
QDomComment QDomNode::toComment() const
Convertit un objet ` QDomNode ` en un objet ` QDomComment`. Si le nœud n'est pas un commentaire, l'objet renvoyé sera ` null`.
Voir aussi isComment().
QDomDocument QDomNode::toDocument() const
Convertit un objet ` QDomNode ` en un objet ` QDomDocument`. Si le nœud n'est pas un document, l'objet renvoyé sera ` null`.
Voir également isDocument().
QDomDocumentFragment QDomNode::toDocumentFragment() const
Convertit un ` QDomNode ` en un ` QDomDocumentFragment`. Si le nœud n'est pas un fragment de document, l'objet renvoyé sera ` null`.
Voir également isDocumentFragment().
QDomDocumentType QDomNode::toDocumentType() const
Convertit un ` QDomNode ` en ` QDomDocumentType`. Si le nœud n'est pas un type de document, l'objet renvoyé sera ` null`.
Voir également isDocumentType().
QDomElement QDomNode::toElement() const
Convertit un ` QDomNode ` en un ` QDomElement`. Si le nœud n'est pas un élément, l'objet renvoyé sera ` null`.
Voir aussi isElement().
QDomEntity QDomNode::toEntity() const
Convertit un ` QDomNode ` en un ` QDomEntity`. Si le nœud n'est pas une entité, l'objet renvoyé sera ` null`.
Voir aussi isEntity().
QDomEntityReference QDomNode::toEntityReference() const
Convertit une référence d'entité ( QDomNode ) en une référence de nœud ( QDomEntityReference). Si le nœud n'est pas une référence d'entité, l'objet renvoyé sera une référence de nœud ( null).
Voir également isEntityReference().
QDomNotation QDomNode::toNotation() const
Convertit un objet ` QDomNode ` en un objet ` QDomNotation`. Si le nœud n'est pas une notation, l'objet renvoyé sera ` null`.
Voir également isNotation().
QDomProcessingInstruction QDomNode::toProcessingInstruction() const
Convertit un ` QDomNode ` en un ` QDomProcessingInstruction`. Si le nœud n'est pas une instruction de traitement, l'objet renvoyé sera ` null`.
Voir également isProcessingInstruction().
QDomText QDomNode::toText() const
Convertit un objet ` QDomNode ` en un objet ` QDomText`. Si le nœud n'est pas du texte, l'objet renvoyé sera ` null`.
Voir également 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)
Attribue une copie de ` other ` à ce nœud DOM.
Les données de la copie sont partagées (copie superficielle) : la modification d'un nœud entraîne également la modification de l'autre. Si vous souhaitez effectuer une copie profonde, utilisez la méthode cloneNode().
bool QDomNode::operator==(const QDomNode &other) const
Renvoie ` true ` si ` other ` et ce nœud DOM sont égaux ; sinon, renvoie ` 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 :
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. En revanche :
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 « false » car ils font référence à deux nœuds différents dans la structure de données sous-jacente.
Éléments non membres associé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.