En esta página

QDomNode Class

La clase QDomNode es la clase base para todos los nodos de un árbol DOM. Más...

Cabecera: #include <QDomNode>
CMake: find_package(Qt6 REQUIRED COMPONENTS Xml)
target_link_libraries(mytarget PRIVATE Qt6::Xml)
qmake: QT += xml
Heredado por:
10 tipos

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

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

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

Funciones Públicas

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)

Descripción Detallada

Muchas funciones del DOM devuelven un QDomNode.

Puedes averiguar el tipo de un nodo utilizando isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() y isComment().

Un QDomNode puede convertirse en una de sus subclases mediante toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() o toComment(). Puede convertir un nodo en nulo con clear().

Las copias de la clase QDomNode comparten sus datos mediante compartición explícita. Esto significa que la modificación de un nodo cambiará todas las copias. Esto es especialmente útil en combinación con funciones que devuelven un QDomNode, por ejemplo firstChild(). Puedes hacer una copia independiente (profunda) del nodo con cloneNode().

Un QDomNode puede ser nulo, al igual que nullptr. La creación de una copia de un nodo nulo da como resultado otro nodo nulo. No es posible modificar un nodo nulo, pero es posible asignarle otro nodo, posiblemente no nulo. En este caso, la copia del nodo nulo seguirá siendo nula. Puedes comprobar si un QDomNode es nulo llamando a isNull(). El constructor vacío de un QDomNode (o de cualquiera de las clases derivadas) crea un nodo nulo.

Los nodos se insertan con insertBefore(), insertAfter() o appendChild(). Puede sustituir un nodo por otro utilizando replaceChild() y eliminar un nodo con removeChild().

Para recorrer nodos se utiliza firstChild() para obtener el primer hijo de un nodo (si lo hay), y nextSibling() para recorrerlo. QDomNode también proporciona lastChild(), previousSibling() y parentNode(). Para encontrar el primer nodo hijo con un nombre de nodo concreto utiliza namedItem().

Para saber si un nodo tiene hijos utiliza hasChildNodes() y para obtener una lista de todos los hijos de un nodo utiliza childNodes().

El nombre y el valor del nodo (cuyo significado varía en función de su tipo) se devuelven con nodeName() y nodeValue() respectivamente. El tipo del nodo se devuelve mediante nodeType(). El valor del nodo puede establecerse con setNodeValue().

El documento al que pertenece el nodo es devuelto por ownerDocument().

Los nodos QDomText adyacentes pueden fusionarse en un único nodo con normalize().

QDomElement Los nodos tienen atributos que pueden recuperarse con attributes().

QDomElement y los nodos QDomAttr pueden tener espacios de nombres que pueden consultarse con namespaceURI(). Su nombre local se obtiene con localName(), y su prefijo con prefix(). El prefijo puede establecerse con setPrefix().

Puede escribir la representación XML del nodo en un flujo de texto con save().

El siguiente ejemplo busca el primer elemento de un documento XML e imprime los nombres de todos los elementos que son sus hijos directos.

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

Para más información sobre el Modelo de Objetos de Documento, véase Núcleo de Nivel 1 y Nivel 2. Para una introducción más general a la implementación del DOM, consulte la documentación de QDomDocument.

Documentación de tipos de miembros

enum QDomNode::EncodingPolicy

Este enum especifica cómo QDomNode::save() determina qué codificación utilizar al serializar.

ConstanteValorDescripción
QDomNode::EncodingFromDocument1La codificación se obtiene del documento.
QDomNode::EncodingFromTextStream2La codificación se obtiene de QTextStream.

Véase también QDomNode::save().

enum QDomNode::NodeType

Este enum define el tipo de nodo:

ConstanteValorDescripción
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 objeto QDomNode, es decir, no una subclase de QDomNode.
QDomNode::CharacterDataNode22

Documentación de las funciones miembro

QDomNode::QDomNode()

Construye un nodo null.

QDomNode::QDomNode(const QDomNode &node)

Construye una copia de node.

Los datos de la copia son compartidos (copia superficial): si se modifica un nodo, también se modificará el otro. Si quieres hacer una copia profunda, utiliza cloneNode().

[noexcept] QDomNode::~QDomNode()

Destruye el objeto y libera sus recursos.

QDomNode QDomNode::appendChild(const QDomNode &newChild)

Añade newChild como último hijo del nodo.

Si newChild es hijo de otro nodo, se reparentará a este nodo. Si newChild es hijo de este nodo, se modifica su posición en la lista de hijos.

Si newChild es un QDomDocumentFragment, entonces los hijos del fragmento se eliminan del fragmento y se añaden.

Si newChild es un QDomElement y este nodo es un QDomDocument que ya tiene un nodo elemento como hijo, newChild no se añade como hijo y se devuelve un nodo nulo.

Devuelve una nueva referencia a newChild en caso de éxito o un null node en caso de fallo.

Llamar a esta función en un nodo nulo (creado, por ejemplo, con el constructor por defecto) no hace nada y devuelve un null node.

La especificación DOM no permite insertar nodos de atributo, pero por razones históricas, QDom los acepta de todos modos.

Véase también insertBefore(), insertAfter(), replaceChild(), y removeChild().

QDomNamedNodeMap QDomNode::attributes() const

Devuelve un mapa de nodos con nombre de todos los atributos. Los atributos sólo se proporcionan para QDomElements.

Si se cambian los atributos en el mapa, también cambiarán los atributos de este QDomNode.

QDomNodeList QDomNode::childNodes() const

Devuelve una lista de todos los nodos hijos directos.

Lo más habitual es llamar a esta función en un objeto QDomElement.

Por ejemplo, si el documento XML tiene este aspecto:

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

Entonces la lista de nodos hijos del elemento "body" contendrá el nodo creado por la etiqueta &lt;h1&gt; y el nodo creado por la etiqueta &lt;p&gt;.

Los nodos de la lista no se copian, por lo que al cambiar los nodos de la lista también cambiarán los hijos de este nodo.

Véase también firstChild() y lastChild().

void QDomNode::clear()

Convierte el nodo en un nodo nulo; si antes no era un nodo nulo, se eliminan su tipo y su contenido.

Véase también isNull().

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

Crea una copia profunda (no superficial) de QDomNode.

Si deep es verdadero, la clonación se hace recursivamente, lo que significa que todos los hijos del nodo también se copian en profundidad. Si deep es falso, sólo se copia el propio nodo y la copia no tendrá nodos hijos.

int QDomNode::columnNumber() const

Para los nodos creados por QDomDocument::setContent(), esta función devuelve el número de columna en el documento XML donde se analizó el nodo. En caso contrario, devuelve -1.

Véase también lineNumber() y QDomDocument::setContent().

QDomNode QDomNode::firstChild() const

Devuelve el primer hijo del nodo. Si no hay ningún nodo hijo, se devuelve un null node. Si se modifica el nodo devuelto, también se modificará el nodo en el árbol del documento.

Véase también lastChild() y childNodes().

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

Devuelve el primer elemento hijo con nombre de etiqueta tagName y URI de espacio de nombres namespaceURI. Si tagName está vacío, devuelve el primer elemento hijo con namespaceURI, y si namespaceURI está vacío, devuelve el primer elemento hijo con tagName. Si ambos parámetros están vacíos, devuelve el primer elemento hijo. Si no existe ningún elemento hijo, devuelve un elemento nulo.

Véase también lastChildElement(), previousSiblingElement() y nextSiblingElement().

bool QDomNode::hasAttributes() const

Devuelve true si el nodo tiene atributos; en caso contrario devuelve false.

Véase también attributes().

bool QDomNode::hasChildNodes() const

Devuelve true si el nodo tiene uno o más hijos; en caso contrario devuelve false.

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

Inserta el nodo newChild después del nodo hijo refChild. refChild debe ser hijo directo de este nodo. Si refChild es null entonces newChild se añade como último hijo de este nodo.

Si newChild es hijo de otro nodo, se reasigna a este nodo. Si newChild es hijo de este nodo, se cambia su posición en la lista de hijos.

Si newChild es un QDomDocumentFragment, entonces los hijos del fragmento se eliminan del fragmento y se insertan después de refChild.

Devuelve una nueva referencia a newChild en caso de éxito o a null node en caso de fallo.

La especificación DOM no permite insertar nodos de atributo, pero por razones históricas QDom los acepta.

Véase también insertBefore(), replaceChild(), removeChild(), y appendChild().

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

Inserta el nodo newChild antes del nodo hijo refChild. refChild debe ser hijo directo de este nodo. Si refChild es null entonces newChild se inserta como primer hijo del nodo.

Si newChild es hijo de otro nodo, se reparentará a este nodo. Si newChild es hijo de este nodo, se cambia su posición en la lista de hijos.

Si newChild es un QDomDocumentFragment, entonces los hijos del fragmento se eliminan del fragmento y se insertan antes de refChild.

Devuelve una nueva referencia a newChild en caso de éxito o a null node en caso de fallo.

La especificación DOM no permite insertar nodos de atributo, pero por razones históricas QDom los acepta.

Véase también insertAfter(), replaceChild(), removeChild(), y appendChild().

bool QDomNode::isAttr() const

Devuelve true si el nodo es un atributo; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomAttribute; puedes obtener el QDomAttribute con toAttribute().

Véase también toAttr().

bool QDomNode::isCDATASection() const

Devuelve true si el nodo es una sección CDATA; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomCDATASection; puede obtener el QDomCDATASection con toCDATASection().

Véase también toCDATASection().

bool QDomNode::isCharacterData() const

Devuelve true si el nodo es un nodo de datos de caracteres; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomCharacterData; puede obtener el QDomCharacterData con toCharacterData().

Véase también toCharacterData().

bool QDomNode::isComment() const

Devuelve true si el nodo es un comentario; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomComment; puede obtener el QDomComment con toComment().

Véase también toComment().

bool QDomNode::isDocument() const

Devuelve true si el nodo es un documento; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomDocument; puede obtener el QDomDocument con toDocument().

Véase también toDocument().

bool QDomNode::isDocumentFragment() const

Devuelve true si el nodo es un fragmento de documento; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomDocumentFragment; puede obtener el QDomDocumentFragment con toDocumentFragment().

Véase también toDocumentFragment().

bool QDomNode::isDocumentType() const

Devuelve true si el nodo es de tipo documento; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomDocumentType; puede obtener el QDomDocumentType con toDocumentType().

Véase también toDocumentType().

bool QDomNode::isElement() const

Devuelve true si el nodo es un elemento; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomElement; puede obtener el QDomElement con toElement().

Véase también toElement().

bool QDomNode::isEntity() const

Devuelve true si el nodo es una entidad; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomEntity; puede obtener el QDomEntity con toEntity().

Véase también toEntity().

bool QDomNode::isEntityReference() const

Devuelve true si el nodo es una referencia de entidad; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomEntityReference; puede obtener el QDomEntityReference con toEntityReference().

Véase también toEntityReference().

bool QDomNode::isNotation() const

Devuelve true si el nodo es una notación; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomNotation; puede obtener el QDomNotation con toNotation().

Véase también toNotation().

bool QDomNode::isNull() const

Devuelve true si este nodo es nulo (es decir, si no tiene tipo ni contenido); en caso contrario, devuelve false.

bool QDomNode::isProcessingInstruction() const

Devuelve true si el nodo es una instrucción de procesamiento; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea una QDomProcessingInstruction; puede obtener la QProcessingInstruction con toProcessingInstruction().

Véase también toProcessingInstruction().

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

Devuelve true si la implementación DOM implementa la característica feature y esta característica es soportada por este nodo en la versión version; en caso contrario devuelve false.

Véase también QDomImplementation::hasFeature().

bool QDomNode::isText() const

Devuelve true si el nodo es un nodo de texto; en caso contrario devuelve false.

Si esta función devuelve true, no implica que este objeto sea un QDomText; puede obtener el QDomText con toText().

Véase también toText().

QDomNode QDomNode::lastChild() const

Devuelve el último hijo del nodo. Si no hay ningún nodo hijo, se devuelve un null node. Si se modifica el nodo devuelto, también se modificará el nodo en el árbol del documento.

Véase también firstChild() y childNodes().

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

Devuelve el último elemento hijo con nombre de etiqueta tagName y URI de espacio de nombres namespaceURI. Si tagName está vacío, devuelve el último elemento hijo con namespaceURI, y si namespaceURI está vacío, devuelve el último elemento hijo con tagName. Si ambos parámetros están vacíos, devuelve el último elemento hijo. Si no existe ningún elemento hijo, devuelve un elemento nulo.

Véase también firstChildElement(), previousSiblingElement() y nextSiblingElement().

int QDomNode::lineNumber() const

Para los nodos creados por QDomDocument::setContent(), esta función devuelve el número de línea del documento XML donde se analizó el nodo. En caso contrario, devuelve -1.

Véase también columnNumber() y QDomDocument::setContent().

QString QDomNode::localName() const

Si el nodo utiliza espacios de nombres, esta función devuelve el nombre local del nodo; en caso contrario, devuelve una cadena vacía.

Sólo los nodos de tipo ElementNode o AttributeNode pueden tener espacios de nombres. El espacio de nombres debe haberse especificado en el momento de la creación; no es posible añadir un espacio de nombres posteriormente.

Véase también prefix(), namespaceURI(), QDomDocument::createElementNS() y QDomDocument::createAttributeNS().

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

Devuelve el primer nodo hijo directo para el que nodeName() es igual a name.

Si no existe tal hijo directo, se devuelve null node.

Véase también nodeName().

QString QDomNode::namespaceURI() const

Devuelve el URI del espacio de nombres de este nodo o una cadena vacía si el nodo no tiene URI de espacio de nombres.

Sólo los nodos de tipo ElementNode o AttributeNode pueden tener espacios de nombres. El URI del espacio de nombres debe especificarse en el momento de la creación y no puede modificarse posteriormente.

Véase también prefix(), localName(), QDomDocument::createElementNS() y QDomDocument::createAttributeNS().

QDomNode QDomNode::nextSibling() const

Devuelve el siguiente hermano en el árbol de documentos. Si cambia el nodo devuelto, también cambiará el nodo en el árbol de documentos.

Si tiene un XML como este

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

y este QDomNode representa la etiqueta <p>, nextSibling() devolverá el nodo que representa la etiqueta <h2>.

Véase también previousSibling().

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

Devuelve el siguiente elemento hermano con nombre de etiqueta tagName y URI de espacio de nombres namespaceURI. Si tagName está vacío, devuelve el siguiente elemento hermano con namespaceURI, y si namespaceURI está vacío, devuelve el siguiente elemento hermano hijo con tagName. Si ambos parámetros están vacíos, devuelve el siguiente elemento hermano. Si no existe ningún elemento hermano, devuelve un elemento nulo.

Véase también firstChildElement(), previousSiblingElement() y lastChildElement().

QString QDomNode::nodeName() const

Devuelve el nombre del nodo.

El significado del nombre depende de la subclase:

NombreSignificado
QDomAttrNombre del atributo
QDomCDATASectionLa cadena "#cdata-section"
QDomCommentLa cadena "#comment"
QDomDocumentLa cadena "#document"
QDomDocumentFragmentLa cadena "#documento-fragmento"
QDomDocumentTypeEl nombre del tipo de documento
QDomElementEl nombre de la etiqueta
QDomEntityEl nombre de la entidad
QDomEntityReferenceEl nombre de la entidad referenciada
QDomNotationEl nombre de la notación
QDomProcessingInstructionEl objetivo de la instrucción de tratamiento
QDomTextLa cadena "#texto

Nota: Esta función no tiene en cuenta la presencia de espacios de nombres al procesar los nombres de los nodos de elementos y atributos. En consecuencia, el nombre devuelto puede contener cualquier prefijo de espacio de nombres que pueda estar presente. Para obtener el nombre de nodo de un elemento o atributo, utilice localName(); para obtener el prefijo del espacio de nombres, utilice namespaceURI().

Véase también nodeValue().

QDomNode::NodeType QDomNode::nodeType() const

Devuelve el tipo del nodo.

Ver también toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData(), y toComment().

QString QDomNode::nodeValue() const

Devuelve el valor del nodo.

El significado del valor depende de la subclase:

NombreSignificado
QDomAttrEl valor del atributo
QDomCDATASectionEl contenido de la sección CDATA
QDomCommentEl comentario
QDomProcessingInstructionLos datos de la instrucción de tratamiento
QDomTextEl texto

Todas las demás subclases no tienen valor de nodo y devolverán una cadena vacía.

Véase también setNodeValue() y nodeName().

void QDomNode::normalize()

Llamar a normalize() sobre un elemento convierte a todos sus hijos en una forma estándar. Esto significa que los objetos QDomText adyacentes se fusionarán en un único objeto de texto (los nodosQDomCDATASection no se fusionan).

QDomDocument QDomNode::ownerDocument() const

Devuelve el documento al que pertenece este nodo.

QDomNode QDomNode::parentNode() const

Devuelve el nodo padre. Si este nodo no tiene padre, se devuelve un nodo nulo (es decir, un nodo para el que isNull() devuelve true).

QString QDomNode::prefix() const

Devuelve el prefijo del espacio de nombres del nodo o una cadena vacía si el nodo no tiene prefijo de espacio de nombres.

Sólo los nodos de tipo ElementNode o AttributeNode pueden tener espacios de nombres. Debe especificarse un prefijo de espacio de nombres en el momento de la creación. Si un nodo se creó con un prefijo de espacio de nombres, puede cambiarlo posteriormente con setPrefix().

Si crea un elemento o atributo con QDomDocument::createElement() o QDomDocument::createAttribute(), el prefijo será una cadena vacía. Si utiliza QDomDocument::createElementNS() o QDomDocument::createAttributeNS() en su lugar, el prefijo no será una cadena vacía; pero podría ser una cadena vacía si el nombre no tiene prefijo.

Véase también setPrefix(), localName(), namespaceURI(), QDomDocument::createElementNS() y QDomDocument::createAttributeNS().

QDomNode QDomNode::previousSibling() const

Devuelve el nodo hermano anterior en el árbol de documentos. Si cambia el nodo devuelto, también cambiará el nodo en el árbol de documentos.

Por ejemplo, si tiene un XML como este

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

y este QDomNode representa la etiqueta &lt;p&gt;, previousSibling() devolverá el nodo que representa la etiqueta &lt;h1&gt;.

Véase también nextSibling().

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

Devuelve el elemento hermano anterior con nombre de etiqueta tagName y URI de espacio de nombres namespaceURI. Si tagName está vacío, devuelve el elemento hermano anterior con namespaceURI, y si namespaceURI está vacío, devuelve el elemento hermano anterior con tagName. Si ambos parámetros están vacíos, devuelve el elemento hermano anterior. Si no existe ningún elemento hermano, devuelve un elemento nulo.

Véase también firstChildElement(), nextSiblingElement() y lastChildElement().

QDomNode QDomNode::removeChild(const QDomNode &oldChild)

Elimina oldChild de la lista de hijos. oldChild debe ser hijo directo de este nodo.

Devuelve una nueva referencia a oldChild en caso de éxito o un null node en caso de fallo.

Véase también insertBefore(), insertAfter(), replaceChild() y appendChild().

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

Sustituye oldChild por newChild. oldChild debe ser hijo directo de este nodo.

Si newChild es hijo de otro nodo, se reasigna a este nodo. Si newChild es hijo de este nodo, se cambia su posición en la lista de hijos.

Si newChild es un QDomDocumentFragment, entonces oldChild es reemplazado por todos los hijos del fragmento.

Devuelve una nueva referencia a oldChild en caso de éxito o un null node en caso de fallo.

Véase también insertBefore(), insertAfter(), removeChild() y appendChild().

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

Escribe la representación XML del nodo y todos sus hijos en el flujo stream. Esta función utiliza indent como cantidad de espacio para sangrar el nodo.

Si el documento contiene caracteres XML no válidos o caracteres que no pueden codificarse en la codificación dada, el resultado y el comportamiento son indefinidos.

Si encodingPolicy es QDomNode::EncodingFromDocument y este nodo es un nodo de documento, la codificación del flujo de texto stream's encoding se establece tratando una instrucción de procesamiento de nombre "xml" como una declaración XML, si existe, y de lo contrario por defecto a UTF-8. Las declaraciones XML no son instrucciones de procesamiento, pero este comportamiento existe por razones históricas. Si este nodo no es un nodo de documento, se utiliza la codificación del flujo de texto.

Si encodingPolicy es EncodingFromTextStream y este nodo es un nodo documento, esta función se comporta como save(QTextStream &str, int indent) con la excepción de que se utiliza la codificación especificada en el flujo de texto stream.

Si el documento contiene caracteres XML no válidos o caracteres que no pueden codificarse en la codificación dada, el resultado y el comportamiento son indefinidos.

void QDomNode::setNodeValue(const QString &value)

Establece el valor del nodo en value.

Véase también nodeValue().

void QDomNode::setPrefix(const QString &pre)

Si el nodo tiene un prefijo de espacio de nombres, esta función cambia el prefijo de espacio de nombres del nodo a pre. En caso contrario, esta función no hace nada.

Sólo los nodos de tipo ElementNode o AttributeNode pueden tener espacios de nombres. Debe especificarse un prefijo de espacio de nombres en el momento de la creación; no es posible añadir un prefijo de espacio de nombres posteriormente.

Véase también prefix(), localName(), namespaceURI(), QDomDocument::createElementNS() y QDomDocument::createAttributeNS().

QDomAttr QDomNode::toAttr() const

Convierte un QDomNode en un QDomAttr. Si el nodo no es un atributo, el objeto devuelto será null.

Véase también isAttr().

QDomCDATASection QDomNode::toCDATASection() const

Convierte un QDomNode en un QDomCDATASection. Si el nodo no es una sección CDATA, el objeto devuelto será null.

Véase también isCDATASection().

QDomCharacterData QDomNode::toCharacterData() const

Convierte un QDomNode en un QDomCharacterData. Si el nodo no es un nodo de datos de caracteres, el objeto devuelto será null.

Véase también isCharacterData().

QDomComment QDomNode::toComment() const

Convierte un QDomNode en un QDomComment. Si el nodo no es un comentario el objeto devuelto será null.

Véase también isComment().

QDomDocument QDomNode::toDocument() const

Convierte un QDomNode en un QDomDocument. Si el nodo no es un documento, el objeto devuelto será null.

Véase también isDocument().

QDomDocumentFragment QDomNode::toDocumentFragment() const

Convierte un QDomNode en un QDomDocumentFragment. Si el nodo no es un fragmento de documento, el objeto devuelto será null.

Véase también isDocumentFragment().

QDomDocumentType QDomNode::toDocumentType() const

Convierte un QDomNode en un QDomDocumentType. Si el nodo no es de tipo documento el objeto devuelto será null.

Véase también isDocumentType().

QDomElement QDomNode::toElement() const

Convierte un QDomNode en un QDomElement. Si el nodo no es un elemento, el objeto devuelto será null.

Véase también isElement().

QDomEntity QDomNode::toEntity() const

Convierte un QDomNode en un QDomEntity. Si el nodo no es una entidad el objeto devuelto será null.

Véase también isEntity().

QDomEntityReference QDomNode::toEntityReference() const

Convierte un QDomNode en un QDomEntityReference. Si el nodo no es una referencia de entidad, el objeto devuelto será null.

Véase también isEntityReference().

QDomNotation QDomNode::toNotation() const

Convierte un QDomNode en un QDomNotation. Si el nodo no es una notación el objeto devuelto será null.

Véase también isNotation().

QDomProcessingInstruction QDomNode::toProcessingInstruction() const

Convierte un QDomNode en un QDomProcessingInstruction. Si el nodo no es una instrucción de proceso, el objeto devuelto será null.

Véase también isProcessingInstruction().

QDomText QDomNode::toText() const

Convierte un QDomNode en un QDomText. Si el nodo no es un texto, el objeto devuelto será null.

Véase también isText().

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

Devuelve true si other y este nodo DOM no son iguales; en caso contrario devuelve false.

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

Asigna una copia de other a este nodo DOM.

Los datos de la copia son compartidos (copia superficial): si se modifica un nodo, también se modificará el otro. Si quieres hacer una copia profunda, utiliza cloneNode().

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

Devuelve true si other y este nodo DOM son iguales; en caso contrario devuelve false.

Cualquier instancia de QDomNode actúa como referencia a una estructura de datos subyacente en QDomDocument. La prueba de igualdad comprueba si las dos referencias apuntan al mismo nodo subyacente. Por ejemplo:

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

Los dos nodos (QDomElement es una subclase de QDomNode ) se refieren ambos al elemento raíz del documento, y element1 == element2 devolverá verdadero. Por otro lado:

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

Aunque ambos nodos sean elementos vacíos con el mismo nombre, element3 == element4 devolverá falso porque se refieren a dos nodos diferentes de la estructura de datos subyacente.

No miembros relacionados

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

Escribe la representación XML del nodo node y todos sus hijos en el flujo 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.