QDomNode

Section: Misc. Reference Manual Pages (3qt)
Updated: 2 February 2007
Index Return to Main Contents
 

NAME

QDomNode - The base class for all the nodes in a DOM tree  

SYNOPSIS

All the functions in this class are reentrant when Qt is built with thread support.</p>

#include <qdom.h>

Inherited by QDomDocumentType, QDomDocument, QDomDocumentFragment, QDomCharacterData, QDomAttr, QDomElement, QDomNotation, QDomEntity, QDomEntityReference, and QDomProcessingInstruction.

 

Public Members


enum NodeType { ElementNode = 1, AttributeNode = 2, TextNode = 3, CDATASectionNode = 4, EntityReferenceNode = 5, EntityNode = 6, ProcessingInstructionNode = 7, CommentNode = 8, DocumentNode = 9, DocumentTypeNode = 10, DocumentFragmentNode = 11, NotationNode = 12, BaseNode = 21, CharacterDataNode = 22 }

QDomNode ()

QDomNode ( const QDomNode & n )

QDomNode & operator= ( const QDomNode & n )

bool operator== ( const QDomNode & n ) const

bool operator!= ( const QDomNode & n ) const

virtual ~QDomNode ()

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

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

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

virtual QDomNode removeChild ( const QDomNode & oldChild )

virtual QDomNode appendChild ( const QDomNode & newChild )

virtual bool hasChildNodes () const

virtual QDomNode cloneNode ( bool deep = TRUE ) const

virtual void normalize ()

virtual bool isSupported ( const QString & feature, const QString & version ) const

virtual QString nodeName () const

virtual QDomNode::NodeType nodeType () const

virtual QDomNode parentNode () const

virtual QDomNodeList childNodes () const

virtual QDomNode firstChild () const

virtual QDomNode lastChild () const

virtual QDomNode previousSibling () const

virtual QDomNode nextSibling () const

virtual QDomNamedNodeMap attributes () const

virtual QDomDocument ownerDocument () const

virtual QString namespaceURI () const

virtual QString localName () const

virtual bool hasAttributes () const

virtual QString nodeValue () const

virtual void setNodeValue ( const QString & v )

virtual QString prefix () const

virtual void setPrefix ( const QString & pre )

virtual bool isAttr () const

virtual bool isCDATASection () const

virtual bool isDocumentFragment () const

virtual bool isDocument () const

virtual bool isDocumentType () const

virtual bool isElement () const

virtual bool isEntityReference () const

virtual bool isText () const

virtual bool isEntity () const

virtual bool isNotation () const

virtual bool isProcessingInstruction () const

virtual bool isCharacterData () const

virtual bool isComment () const

QDomNode namedItem ( const QString & name ) const

bool isNull () const

void clear ()

QDomAttr toAttr ()

QDomCDATASection toCDATASection ()

QDomDocumentFragment toDocumentFragment ()

QDomDocument toDocument ()

QDomDocumentType toDocumentType ()

QDomElement toElement ()

QDomEntityReference toEntityReference ()

QDomText toText ()

QDomEntity toEntity ()

QDomNotation toNotation ()

QDomProcessingInstruction toProcessingInstruction ()

QDomCharacterData toCharacterData ()

QDomComment toComment ()

void save ( QTextStream & str, int indent ) const
 

RELATED FUNCTION DOCUMENTATION


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

DESCRIPTION

The QDomNode class is the base class for all the nodes in a DOM tree.

Many functions in the DOM return a QDomNode.

You can find out the type of a node using isAttr(), isCDATASection(), isDocumentFragment(), isDocument(), isDocumentType(), isElement(), isEntityReference(), isText(), isEntity(), isNotation(), isProcessingInstruction(), isCharacterData() and isComment().

A QDomNode can be converted into one of its subclasses using toAttr(), toCDATASection(), toDocumentFragment(), toDocument(), toDocumentType(), toElement(), toEntityReference(), toText(), toEntity(), toNotation(), toProcessingInstruction(), toCharacterData() or toComment(). You can convert a node to a null node with clear().

Copies of the QDomNode class share their data using explicit sharing. This means that modifying one node will change all copies. This is especially useful in combination with functions which return a QDomNode, e.g. firstChild(). You can make an independent (deep) copy of the node with cloneNode().

Nodes are inserted with insertBefore(), insertAfter() or appendChild(). You can replace one node with another using replaceChild() and remove a node with removeChild().

To traverse nodes use firstChild() to get a node's first child (if any), and nextSibling() to traverse. QDomNode also provides lastChild(), previousSibling() and parentNode(). To find the first child node with a particular node name use namedItem().

To find out if a node has children use hasChildNodes() and to get a list of all of a node's children use childNodes().

The node's name and value (the meaning of which varies depending on its type) is returned by nodeName() and nodeValue() respectively. The node's type is returned by nodeType(). The node's value can be set with setNodeValue().

The document to which the node belongs is returned by ownerDocument().

Adjacent QDomText nodes can be merged into a single node with normalize().

QDomElement nodes have attributes which can be retrieved with attributes().

QDomElement and QDomAttr nodes can have namespaces which can be retrieved with namespaceURI(). Their local name is retrieved with localName(), and their prefix with prefix(). The prefix can be set with setPrefix().

You can write the XML representation of the node to a text stream with save().

The following example looks for the first element in an XML document and prints the names of all the elements that are its direct children.


QDomDocument d;
d.setContent( someXML );
QDomNode n = d.firstChild();
while ( !n.isNull() ) {
if ( n.isElement() ) {
QDomElement e = n.toElement();
cout << "Element name: " << e.tagName() << endl;
break;
}
n = n.nextSibling();
}

For further information about the Document Object Model see http://www.w3.org/TR/REC-DOM-Level-1/ and http://www.w3.org/TR/DOM-Level-2-Core/. For a more general introduction of the DOM implementation see the QDomDocument documentation.

See also XML.  

Member Type Documentation

 

QDomNode::NodeType

This enum defines the type of the node:
QDomNode::ElementNode
QDomNode::AttributeNode
QDomNode::TextNode
QDomNode::CDATASectionNode
QDomNode::EntityReferenceNode
QDomNode::EntityNode
QDomNode::ProcessingInstructionNode
QDomNode::CommentNode
QDomNode::DocumentNode
QDomNode::DocumentTypeNode
QDomNode::DocumentFragmentNode
QDomNode::NotationNode
QDomNode::BaseNode - A QDomNode object, i.e. not a QDomNode subclass.
QDomNode::CharacterDataNode
 

MEMBER FUNCTION DOCUMENTATION

 

QDomNode::QDomNode ()

Constructs a null node.  

QDomNode::QDomNode ( const QDomNode & n )

Constructs a copy of n.

The data of the copy is shared (shallow copy): modifying one node will also change the other. If you want to make a deep copy, use cloneNode().  

QDomNode::~QDomNode () [virtual]

Destroys the object and frees its resources.  

QDomNode QDomNode::appendChild ( const QDomNode & newChild ) [virtual]

Appends newChild as the node's last child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and appended.

Returns a new reference to newChild.

See also insertBefore(), insertAfter(), replaceChild(), and removeChild().  

QDomNamedNodeMap QDomNode::attributes () const [virtual]

Returns a named node map of all attributes. Attributes are only provided for QDomElements.

Changing the attributes in the map will also change the attributes of this QDomNode.

Reimplemented in QDomElement.  

QDomNodeList QDomNode::childNodes () const [virtual]

Returns a list of all direct child nodes.

Most often you will call this function on a QDomElement object.

For example, if the XML document looks like this:


<body>
<h1>Heading</h1>
<p>Hello <b>you</b></p>
</body>
Then the list of child nodes for the "body"-element will contain the node created by the <h1> tag and the node created by the <p> tag.

The nodes in the list are not copied; so changing the nodes in the list will also change the children of this node.

See also firstChild() and lastChild().  

void QDomNode::clear ()

Converts the node into a null node; if it was not a null node before, its type and contents are deleted.

See also isNull().  

QDomNode QDomNode::cloneNode ( bool deep = TRUE ) const [virtual]

Creates a deep (not shallow) copy of the QDomNode.

If deep is TRUE, then the cloning is done recursively which means that all the node's children are deep copied too. If deep is FALSE only the node itself is copied and the copy will have no child nodes.  

QDomNode QDomNode::firstChild () const [virtual]

Returns the first child of the node. If there is no child node, a null node is returned. Changing the returned node will also change the node in the document tree.

See also lastChild() and childNodes().

Example: xml/outliner/outlinetree.cpp.  

bool QDomNode::hasAttributes () const [virtual]

Returns TRUE if the node has attributes; otherwise returns FALSE.

See also attributes().  

bool QDomNode::hasChildNodes () const [virtual]

Returns TRUE if the node has one or more children; otherwise returns FALSE.  

QDomNode QDomNode::insertAfter ( const QDomNode & newChild, const QDomNode & refChild ) [virtual]

Inserts the node newChild after the child node refChild. refChild must be a direct child of this node. If refChild is null then newChild is appended as this node's last child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and inserted after refChild.

Returns a new reference to newChild on success or a null node on failure.

See also insertBefore(), replaceChild(), removeChild(), and appendChild().  

QDomNode QDomNode::insertBefore ( const QDomNode & newChild, const QDomNode & refChild ) [virtual]

Inserts the node newChild before the child node refChild. refChild must be a direct child of this node. If refChild is null then newChild is inserted as the node's first child.

If newChild is the child of another node, it is reparented to this node. If newChild is a child of this node, then its position in the list of children is changed.

If newChild is a QDomDocumentFragment, then the children of the fragment are removed from the fragment and inserted before refChild.

Returns a new reference to newChild on success or a null node on failure.

See also insertAfter(), replaceChild(), removeChild(), and appendChild().  

bool QDomNode::isAttr () const [virtual]

Returns TRUE if the node is an attribute; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomAttribute; you can get the QDomAttribute with toAttribute().

See also toAttr().

Reimplemented in QDomAttr.  

bool QDomNode::isCDATASection () const [virtual]

Returns TRUE if the node is a CDATA section; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomCDATASection; you can get the QDomCDATASection with toCDATASection().

See also toCDATASection().

Reimplemented in QDomCDATASection.  

bool QDomNode::isCharacterData () const [virtual]

Returns TRUE if the node is a character data node; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomCharacterData; you can get the QDomCharacterData with toCharacterData().

See also toCharacterData().

Reimplemented in QDomCharacterData.  

bool QDomNode::isComment () const [virtual]

Returns TRUE if the node is a comment; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomComment; you can get the QDomComment with toComment().

See also toComment().

Reimplemented in QDomComment.  

bool QDomNode::isDocument () const [virtual]

Returns TRUE if the node is a document; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomDocument; you can get the QDomDocument with toDocument().

See also toDocument().

Reimplemented in QDomDocument.  

bool QDomNode::isDocumentFragment () const [virtual]

Returns TRUE if the node is a document fragment; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomDocumentFragment; you can get the QDomDocumentFragment with toDocumentFragment().

See also toDocumentFragment().

Reimplemented in QDomDocumentFragment.  

bool QDomNode::isDocumentType () const [virtual]

Returns TRUE if the node is a document type; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomDocumentType; you can get the QDomDocumentType with toDocumentType().

See also toDocumentType().

Reimplemented in QDomDocumentType.  

bool QDomNode::isElement () const [virtual]

Returns TRUE if the node is an element; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomElement; you can get the QDomElement with toElement().

See also toElement().

Example: xml/outliner/outlinetree.cpp.

Reimplemented in QDomElement.  

bool QDomNode::isEntity () const [virtual]

Returns TRUE if the node is an entity; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomEntity; you can get the QDomEntity with toEntity().

See also toEntity().

Reimplemented in QDomEntity.  

bool QDomNode::isEntityReference () const [virtual]

Returns TRUE if the node is an entity reference; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomEntityReference; you can get the QDomEntityReference with toEntityReference().

See also toEntityReference().

Reimplemented in QDomEntityReference.  

bool QDomNode::isNotation () const [virtual]

Returns TRUE if the node is a notation; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomNotation; you can get the QDomNotation with toNotation().

See also toNotation().

Reimplemented in QDomNotation.  

bool QDomNode::isNull () const

Returns TRUE if this node is null (i.e. if it has no type or contents); otherwise returns FALSE.

Example: xml/outliner/outlinetree.cpp.  

bool QDomNode::isProcessingInstruction () const [virtual]

Returns TRUE if the node is a processing instruction; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomProcessingInstruction; you can get the QProcessingInstruction with toProcessingInstruction().

See also toProcessingInstruction().

Reimplemented in QDomProcessingInstruction.  

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

Returns TRUE if the DOM implementation implements the feature feature and this feature is supported by this node in the version version; otherwise returns FALSE.

See also QDomImplementation::hasFeature().  

bool QDomNode::isText () const [virtual]

Returns TRUE if the node is a text node; otherwise returns FALSE.

If this function returns TRUE, it does not imply that this object is a QDomText; you can get the QDomText with toText().

See also toText().

Reimplemented in QDomText.  

QDomNode QDomNode::lastChild () const [virtual]

Returns the last child of the node. If there is no child node, a null node is returned. Changing the returned node will also change the node in the document tree.

See also firstChild() and childNodes().  

QString QDomNode::localName () const [virtual]

If the node uses namespaces, this function returns the local name of the node; otherwise it returns QString::null.

Only nodes of type ElementNode or AttributeNode can have namespaces. A namespace must have been specified at creation time; it is not possible to add a namespace afterwards.

See also prefix(), namespaceURI(), QDomDocument::createElementNS(), and QDomDocument::createAttributeNS().  

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

Returns the first direct c