QDomDocument(3qt)QDomDocument(3qt)NAMEQDomDocument - Represents an XML document
SYNOPSIS
All the functions in this class are reentrant when Qt is built with
thread support.</p>
#include <qdom.h>
Inherits QDomNode.
Public Members
QDomDocument ()
explicit QDomDocument ( const QString & name )
explicit QDomDocument ( const QDomDocumentType & doctype )
QDomDocument ( const QDomDocument & x )
QDomDocument & operator= ( const QDomDocument & x )
~QDomDocument ()
QDomElement createElement ( const QString & tagName )
QDomDocumentFragment createDocumentFragment ()
QDomText createTextNode ( const QString & value )
QDomComment createComment ( const QString & value )
QDomCDATASection createCDATASection ( const QString & value )
QDomProcessingInstruction createProcessingInstruction ( const QString &
target, const QString & data )
QDomAttr createAttribute ( const QString & name )
QDomEntityReference createEntityReference ( const QString & name )
QDomNodeList elementsByTagName ( const QString & tagname ) const
QDomNode importNode ( const QDomNode & importedNode, bool deep )
QDomElement createElementNS ( const QString & nsURI, const QString &
qName )
QDomAttr createAttributeNS ( const QString & nsURI, const QString &
qName )
QDomNodeList elementsByTagNameNS ( const QString & nsURI, const QString
& localName )
QDomElement elementById ( const QString & elementId )
QDomDocumentType doctype () const
QDomImplementation implementation () const
QDomElement documentElement () const
bool setContent ( const QCString & buffer, bool namespaceProcessing,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0
)
bool setContent ( const QByteArray & buffer, bool namespaceProcessing,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0
)
bool setContent ( const QString & text, bool namespaceProcessing,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0
)
bool setContent ( QIODevice * dev, bool namespaceProcessing, QString *
errorMsg = 0, int * errorLine = 0, int * errorColumn = 0 )
bool setContent ( const QCString & buffer, QString * errorMsg = 0, int
* errorLine = 0, int * errorColumn = 0 )
bool setContent ( const QByteArray & buffer, QString * errorMsg = 0,
int * errorLine = 0, int * errorColumn = 0 )
bool setContent ( const QString & text, QString * errorMsg = 0, int *
errorLine = 0, int * errorColumn = 0 )
bool setContent ( QIODevice * dev, QString * errorMsg = 0, int *
errorLine = 0, int * errorColumn = 0 )
bool setContent ( QXmlInputSource * source, QXmlReader * reader,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0
)
virtual QDomNode::NodeType nodeType () const
virtual bool isDocument () const
QString toString () const
QString toString ( int indent ) const
QCString toCString () const
QCString toCString ( int indent ) const
DESCRIPTION
The QDomDocument class represents an XML document.
The QDomDocument class represents the entire XML document.
Conceptually, it is the root of the document tree, and provides the
primary access to the document's data.
Since elements, text nodes, comments, processing instructions, etc.,
cannot exist outside the context of a document, the document class also
contains the factory functions needed to create these objects. The node
objects created have an ownerDocument() function which associates them
with the document within whose context they were created. The DOM
classes that will be used most often are QDomNode, QDomDocument,
QDomElement and QDomText.
The parsed XML is represented internally by a tree of objects that can
be accessed using the various QDom classes. All QDom classes only
reference objects in the internal tree. The internal objects in the DOM
tree will get deleted once the last QDom object referencing them and
the QDomDocument itself are deleted.
Creation of elements, text nodes, etc. is done using the various
factory functions provided in this class. Using the default
constructors of the QDom classes will only result in empty objects that
cannot be manipulated or inserted into the Document.
The QDomDocument class has several functions for creating document
data, for example, createElement(), createTextNode(), createComment(),
createCDATASection(), createProcessingInstruction(), createAttribute()
and createEntityReference(). Some of these functions have versions that
support namespaces, i.e. createElementNS() and createAttributeNS(). The
createDocumentFragment() function is used to hold parts of the
document; this is useful for manipulating for complex documents.
The entire content of the document is set with setContent(). This
function parses the string it is passed as an XML document and creates
the DOM tree that represents the document. The root element is
available using documentElement(). The textual representation of the
document can be obtained using toString().
It is possible to insert a node from another document into the document
using importNode().
You can obtain a list of all the elements that have a particular tag
with elementsByTagName() or with elementsByTagNameNS().
The QDom classes are typically used as follows:
QDomDocument doc( "mydocument" );
QFile file( "mydocument.xml" );
if ( !file.open( IO_ReadOnly ) )
return;
if ( !doc.setContent( &file ) ) {
file.close();
return;
}
file.close();
// print out the element names of all elements that are direct children
// of the outermost element.
QDomElement docElem = doc.documentElement();
QDomNode n = docElem.firstChild();
while( !n.isNull() ) {
QDomElement e = n.toElement(); // try to convert the node to an element.
if( !e.isNull() ) {
cout << e.tagName() << endl; // the node really is an element.
}
n = n.nextSibling();
}
// Here we append a new element to the end of the document
QDomElement elem = doc.createElement( "img" );
elem.setAttribute( "src", "myimage.png" );
docElem.appendChild( elem );
Once doc and elem go out of scope, the whole internal tree representing
the XML document is deleted.
To create a document using DOM use code like this:
QDomDocument doc( "MyML" );
QDomElement root = doc.createElement( "MyML" );
doc.appendChild( root );
QDomElement tag = doc.createElement( "Greeting" );
root.appendChild( tag );
QDomText t = doc.createTextNode( "Hello World" );
tag.appendChild( t );
QString xml = doc.toString();
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 FUNCTION DOCUMENTATIONQDomDocument::QDomDocument ()
Constructs an empty document.
explicit QDomDocument::QDomDocument ( const QString & name )
Creates a document and sets the name of the document type to name.
explicit QDomDocument::QDomDocument ( const QDomDocumentType & doctype )
Creates a document with the document type doctype.
See also QDomImplementation::createDocumentType().
QDomDocument::QDomDocument ( const QDomDocument & x )
Constructs a copy of x.
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().
QDomDocument::~QDomDocument ()
Destroys the object and frees its resources.
QDomAttr QDomDocument::createAttribute ( const QString & name )
Creates a new attribute called name that can be inserted into an
element, e.g. using QDomElement::setAttributeNode().
See also createAttributeNS().
QDomAttr QDomDocument::createAttributeNS ( const QString & nsURI, const
QString & qName )
Creates a new attribute with namespace support that can be inserted
into an element. The name of the attribute is qName and the namespace
URI is nsURI. This function also sets QDomNode::prefix() and
QDomNode::localName() to appropriate values (depending on qName).
See also createAttribute().
QDomCDATASection QDomDocument::createCDATASection ( const QString & value )
Creates a new CDATA section for the string value that can be inserted
into the document, e.g. using QDomNode::appendChild().
See also QDomNode::appendChild(), QDomNode::insertBefore(), and
QDomNode::insertAfter().
QDomComment QDomDocument::createComment ( const QString & value )
Creates a new comment for the string value that can be inserted into
the document, e.g. using QDomNode::appendChild().
See also QDomNode::appendChild(), QDomNode::insertBefore(), and
QDomNode::insertAfter().
QDomDocumentFragment QDomDocument::createDocumentFragment ()
Creates a new document fragment, that can be used to hold parts of the
document, e.g. when doing complex manipulations of the document tree.
QDomElement QDomDocument::createElement ( const QString & tagName )
Creates a new element called tagName that can be inserted into the DOM
tree, e.g. using QDomNode::appendChild().
See also createElementNS(), QDomNode::appendChild(),
QDomNode::insertBefore(), and QDomNode::insertAfter().
QDomElement QDomDocument::createElementNS ( const QString & nsURI, const
QString & qName )
Creates a new element with namespace support that can be inserted into
the DOM tree. The name of the element is qName and the namespace URI is
nsURI. This function also sets QDomNode::prefix() and
QDomNode::localName() to appropriate values (depending on qName).
See also createElement().
QDomEntityReference QDomDocument::createEntityReference ( const QString & name
)
Creates a new entity reference called name that can be inserted into
the document, e.g. using QDomNode::appendChild().
See also QDomNode::appendChild(), QDomNode::insertBefore(), and
QDomNode::insertAfter().
QDomProcessingInstruction QDomDocument::createProcessingInstruction ( const
QString & target, const QString & data )
Creates a new processing instruction that can be inserted into the
document, e.g. using QDomNode::appendChild(). This function sets the
target for the processing instruction to target and the data to data.
See also QDomNode::appendChild(), QDomNode::insertBefore(), and
QDomNode::insertAfter().
QDomText QDomDocument::createTextNode ( const QString & value )
Creates a text node for the string value that can be inserted into the
document tree, e.g. using QDomNode::appendChild().
Warning: All characters within an XML document must be in the range:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
This rule also applies to characters encoded as character entities and
characters in CDATA sections. If you use this function to insert
characters outside of this range, the document will not be well-formed.
If you want to store binary data in an XML document you must either use
your own scheme to escape illegal characters, or you must store it in
an external unparsed entity.
See also QDomNode::appendChild(), QDomNode::insertBefore(), and
QDomNode::insertAfter().
QDomDocumentType QDomDocument::doctype () const
Returns the document type of this document.
QDomElement QDomDocument::documentElement () const
Returns the root element of the document.
QDomElement QDomDocument::elementById ( const QString & elementId )
Returns the element whose ID is equal to elementId. If no element with
the ID was found, this function returns a null element.
Since the QDomClasses do not know which attributes are element IDs,
this function returns always a null element. This may change in a
future version.
QDomNodeList QDomDocument::elementsByTagName ( const QString & tagname ) const
Returns a QDomNodeList, that contains all the elements in the document
with the name tagname. The order of the node list is the order they are
encountered in a preorder traversal of the element tree.
See also elementsByTagNameNS() and QDomElement::elementsByTagName().
QDomNodeList QDomDocument::elementsByTagNameNS ( const QString & nsURI, const
QString & localName )
Returns a QDomNodeList that contains all the elements in the document
with the local name localName and a namespace URI of nsURI. The order
of the node list is the order they are encountered in a preorder
traversal of the element tree.
See also elementsByTagName() and QDomElement::elementsByTagNameNS().
QDomImplementation QDomDocument::implementation () const
Returns a QDomImplementation object.
QDomNode QDomDocument::importNode ( const QDomNode & importedNode, bool deep )
Imports the node importedNode from another document to this document.
importedNode remains in the original document; this function creates a
copy that can be used within this document.
This function returns the imported node that belongs to this document.
The returned node has no parent. It is not possible to import
QDomDocument and QDomDocumentType nodes. In those cases this function
returns a null node.
If deep is TRUE, this function imports not only the node importedNode
but its whole subtree; if it is FALSE, only the importedNode is
imported. The argument deep has no effect on QDomAttr and
QDomEntityReference nodes, since the descendents of QDomAttr nodes are
always imported and those of QDomEntityReference nodes are never
imported.
The behavior of this function is slightly different depending on the
node types: <center>.nf
</center>
See also QDomElement::setAttribute(), QDomNode::insertBefore(),
QDomNode::insertAfter(), QDomNode::replaceChild(),
QDomNode::removeChild(), and QDomNode::appendChild().
bool QDomDocument::isDocument () const [virtual]
Returns TRUE.
Reimplemented from QDomNode.
QDomNode::NodeType QDomDocument::nodeType () const [virtual]
Returns DocumentNode.
Reimplemented from QDomNode.
QDomDocument & QDomDocument::operator= ( const QDomDocument & x )
Assigns x to this DOM document.
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 QDomDocument::setContent ( const QByteArray & buffer, bool
namespaceProcessing, QString * errorMsg = 0, int * errorLine = 0, int *
errorColumn = 0 )
This function parses the XML document from the byte array buffer and
sets it as the content of the document. It tries to detect the encoding
of the document as required by the XML specification.
If namespaceProcessing is TRUE, the parser recognizes namespaces in the
XML file and sets the prefix name, local name and namespace URI to
appropriate values. If namespaceProcessing is FALSE, the parser does no
namespace processing when it reads the XML file.
If a parse error occurs, the function returns FALSE; otherwise it
returns TRUE. If a parse error occurs and errorMsg, errorLine and
errorColumn are not 0, the error message is placed in *errorMsg, the
line number *errorLine and the column number in *errorColumn.
If namespaceProcessing is TRUE, the function QDomNode::prefix() returns
a string for all elements and attributes. It returns an empty string if
the element or attribute has no prefix.
If namespaceProcessing is FALSE, the functions QDomNode::prefix(),
QDomNode::localName() and QDomNode::namespaceURI() return
QString::null.
See also QDomNode::namespaceURI(), QDomNode::localName(),
QDomNode::prefix(), QString::isNull(), and QString::isEmpty().
bool QDomDocument::setContent ( const QCString & buffer, bool
namespaceProcessing, QString * errorMsg = 0, int * errorLine = 0, int *
errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the C string buffer.
Warning: This function does not try to detect the encoding: instead it
assumes that the C string is UTF-8 encoded.
bool QDomDocument::setContent ( const QString & text, bool
namespaceProcessing, QString * errorMsg = 0, int * errorLine = 0, int *
errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the string text. Since text
is already a Unicode string, no encoding detection is done.
bool QDomDocument::setContent ( QIODevice * dev, bool namespaceProcessing,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the IO device dev.
bool QDomDocument::setContent ( const QCString & buffer, QString * errorMsg =
0, int * errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the C string buffer.
No namespace processing is performed.
Warning: This function does not try to detect the encoding: instead it
assumes that the C string is UTF-8 encoded.
bool QDomDocument::setContent ( const QByteArray & buffer, QString * errorMsg
= 0, int * errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the byte array buffer.
No namespace processing is performed.
bool QDomDocument::setContent ( const QString & text, QString * errorMsg = 0,
int * errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the string text. Since text
is already a Unicode string, no encoding detection is performed.
No namespace processing is performed either.
bool QDomDocument::setContent ( QIODevice * dev, QString * errorMsg = 0, int *
errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the IO device dev.
No namespace processing is performed.
bool QDomDocument::setContent ( QXmlInputSource * source, QXmlReader * reader,
QString * errorMsg = 0, int * errorLine = 0, int * errorColumn = 0 )
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function reads the XML document from the QXmlInputSource source
and parses it with the QXmlReader reader.
This function doesn't change the features of the reader. If you want to
use certain features for parsing you can use this function to set up
the reader appropriate.
See also QXmlSimpleReader.
QCString QDomDocument::toCString () const
Converts the parsed document back to its textual representation and
returns a QCString for that is encoded in UTF-8.
See also toString().
QCString QDomDocument::toCString ( int indent ) const
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function uses indent as the amount of space to indent subelements.
QString QDomDocument::toString () const
Converts the parsed document back to its textual representation.
See also toCString().
QString QDomDocument::toString ( int indent ) const
This is an overloaded member function, provided for convenience. It
behaves essentially like the above function.
This function uses indent as the amount of space to indent subelements.
SEE ALSO
http://doc.trolltech.com/qdomdocument.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
(qdomdocument.3qt) and the Qt version (3.3.8).
Trolltech AS 2 February 2007 QDomDocument(3qt)