QDomNode(3qt)QDomNode(3qt)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 DOCUMENTATIONQDomNode::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 child node for which nodeName() equals name.
If no such direct child exists, a null node is returned.
See also nodeName().
QString QDomNode::namespaceURI () const [virtual]
Returns the namespace URI of this node or QString::null if the node has
no namespace URI.
Only nodes of type ElementNode or AttributeNode can have namespaces. A
namespace URI must be specified at creation time and cannot be changed
later.
See also prefix(), localName(), QDomDocument::createElementNS(), and
QDomDocument::createAttributeNS().
QDomNode QDomNode::nextSibling () const [virtual]
Returns the next sibling in the document tree. Changing the returned
node will also change the node in the document tree.
If you have XML like this:
<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>
and this QDomNode represents the <p> tag, nextSibling() will return the
node representing the <h2> tag.
See also previousSibling().
Example: xml/outliner/outlinetree.cpp.
QString QDomNode::nodeName () const [virtual]
Returns the name of the node.
The meaning of the name depends on the subclass: <center>.nf
</center>
See also nodeValue().
Example: xml/outliner/outlinetree.cpp.
QDomNode::NodeType QDomNode::nodeType () const [virtual]
Returns the type of the node.
See also toAttr(), toCDATASection(), toDocumentFragment(),
toDocument(), toDocumentType(), toElement(), toEntityReference(),
toText(), toEntity(), toNotation(), toProcessingInstruction(),
toCharacterData(), and toComment().
Reimplemented in QDomDocumentType, QDomDocument, QDomDocumentFragment,
QDomCharacterData, QDomAttr, QDomElement, QDomNotation, QDomEntity,
QDomEntityReference, and QDomProcessingInstruction.
QString QDomNode::nodeValue () const [virtual]
Returns the value of the node.
The meaning of the value depends on the subclass: <center>.nf
</center>
All the other subclasses do not have a node value and will return
QString::null.
See also setNodeValue() and nodeName().
Example: xml/outliner/outlinetree.cpp.
void QDomNode::normalize () [virtual]
Calling normalize() on an element converts all its children into a
standard form. This means that adjacent QDomText objects will be merged
into a single text object (QDomCDATASection nodes are not merged).
bool QDomNode::operator!= ( const QDomNode & n ) const
Returns TRUE if n and this DOM node are not equal; otherwise returns
FALSE.
QDomNode & QDomNode::operator= ( const QDomNode & n )
Assigns a copy of n to this DOM node.
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().
bool QDomNode::operator== ( const QDomNode & n ) const
Returns TRUE if n and this DOM node are equal; otherwise returns FALSE.
QDomDocument QDomNode::ownerDocument () const [virtual]
Returns the document to which this node belongs.
QDomNode QDomNode::parentNode () const [virtual]
Returns the parent node. If this node has no parent, a null node is
returned (i.e. a node for which isNull() returns TRUE).
QString QDomNode::prefix () const [virtual]
Returns the namespace prefix of the node or QString::null if the node
has no namespace prefix.
Only nodes of type ElementNode or AttributeNode can have namespaces. A
namespace prefix must be specified at creation time. If a node was
created with a namespace prefix, you can change it later with
setPrefix().
If you create an element or attribute with
QDomDocument::createElement() or QDomDocument::createAttribute(), the
prefix will be QString::null. If you use
QDomDocument::createElementNS() or QDomDocument::createAttributeNS()
instead, the prefix will not be QString::null; but it might be an empty
string if the name does not have a prefix.
See also setPrefix(), localName(), namespaceURI(),
QDomDocument::createElementNS(), and QDomDocument::createAttributeNS().
QDomNode QDomNode::previousSibling () const [virtual]
Returns the previous sibling in the document tree. Changing the
returned node will also change the node in the document tree.
For example, if you have XML like this:
<h1>Heading</h1>
<p>The text...</p>
<h2>Next heading</h2>
and this QDomNode represents the <p> tag, previousSibling() will return
the node representing the <h1> tag.
See also nextSibling().
QDomNode QDomNode::removeChild ( const QDomNode & oldChild ) [virtual]
Removes oldChild from the list of children. oldChild must be a direct
child of this node.
Returns a new reference to oldChild on success or a null node on
failure.
See also insertBefore(), insertAfter(), replaceChild(), and
appendChild().
QDomNode QDomNode::replaceChild ( const QDomNode & newChild, const QDomNode &
oldChild ) [virtual]
Replaces oldChild with newChild. oldChild must be a direct child of
this node.
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 oldChild is replaced by all
of the children of the fragment.
Returns a new reference to oldChild on success or a null node an
failure.
See also insertBefore(), insertAfter(), removeChild(), and
appendChild().
void QDomNode::save ( QTextStream & str, int indent ) const
Writes the XML representation of the node and all its children to the
stream str. This function uses indent as the amount of space to indent
the node.
void QDomNode::setNodeValue ( const QString & v ) [virtual]
Sets the node's value to v.
See also nodeValue().
void QDomNode::setPrefix ( const QString & pre ) [virtual]
If the node has a namespace prefix, this function changes the namespace
prefix of the node to pre. Otherwise this function does nothing.
Only nodes of type ElementNode or AttributeNode can have namespaces. A
namespace prefix must have be specified at creation time; it is not
possible to add a namespace prefix afterwards.
See also prefix(), localName(), namespaceURI(),
QDomDocument::createElementNS(), and QDomDocument::createAttributeNS().
QDomAttr QDomNode::toAttr ()
Converts a QDomNode into a QDomAttr. If the node is not an attribute,
the returned object will be null.
See also isAttr().
QDomCDATASection QDomNode::toCDATASection ()
Converts a QDomNode into a QDomCDATASection. If the node is not a CDATA
section, the returned object will be null.
See also isCDATASection().
QDomCharacterData QDomNode::toCharacterData ()
Converts a QDomNode into a QDomCharacterData. If the node is not a
character data node the returned object will be null.
See also isCharacterData().
QDomComment QDomNode::toComment ()
Converts a QDomNode into a QDomComment. If the node is not a comment
the returned object will be null.
See also isComment().
QDomDocument QDomNode::toDocument ()
Converts a QDomNode into a QDomDocument. If the node is not a document
the returned object will be null.
See also isDocument().
QDomDocumentFragment QDomNode::toDocumentFragment ()
Converts a QDomNode into a QDomDocumentFragment. If the node is not a
document fragment the returned object will be null.
See also isDocumentFragment().
QDomDocumentType QDomNode::toDocumentType ()
Converts a QDomNode into a QDomDocumentType. If the node is not a
document type the returned object will be null.
See also isDocumentType().
QDomElement QDomNode::toElement ()
Converts a QDomNode into a QDomElement. If the node is not an element
the returned object will be null.
See also isElement().
Example: xml/outliner/outlinetree.cpp.
QDomEntity QDomNode::toEntity ()
Converts a QDomNode into a QDomEntity. If the node is not an entity the
returned object will be null.
See also isEntity().
QDomEntityReference QDomNode::toEntityReference ()
Converts a QDomNode into a QDomEntityReference. If the node is not an
entity reference, the returned object will be null.
See also isEntityReference().
QDomNotation QDomNode::toNotation ()
Converts a QDomNode into a QDomNotation. If the node is not a notation
the returned object will be null.
See also isNotation().
QDomProcessingInstruction QDomNode::toProcessingInstruction ()
Converts a QDomNode into a QDomProcessingInstruction. If the node is
not a processing instruction the returned object will be null.
See also isProcessingInstruction().
QDomText QDomNode::toText ()
Converts a QDomNode into a QDomText. If the node is not a text, the
returned object will be null.
See also isText().
RELATED FUNCTION DOCUMENTATIONQTextStream & operator<< ( QTextStream & str, const QDomNode & node )
Writes the XML representation of the node node and all its children to
the stream str.
SEE ALSO
http://doc.trolltech.com/qdomnode.html
http://www.trolltech.com/faq/tech.html
COPYRIGHT
Copyright 1992-2007 Trolltech ASA, http://www.trolltech.com. See the
license file included in the distribution for a complete license
statement.
AUTHOR
Generated automatically from the source code.
BUGS
If you find a bug in Qt, please report it as described in
http://doc.trolltech.com/bughowto.html. Good bug reports help us to
help you. Thank you.
The definitive Qt documentation is provided in HTML format; it is
located at $QTDIR/doc/html and can be read using Qt Assistant or with a
web browser. This man page is provided as a convenience for those users
who prefer man pages, although this format is not officially supported
by Trolltech.
If you find errors in this manual page, please report them to qt-
bugs@trolltech.com. Please include the name of the manual page
(qdomnode.3qt) and the Qt version (3.3.8).
Trolltech AS 2 February 2007 QDomNode(3qt)