summaryrefslogtreecommitdiff
path: root/library/xmlreader.cpp
Side-by-side diff
Diffstat (limited to 'library/xmlreader.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/xmlreader.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/library/xmlreader.cpp b/library/xmlreader.cpp
index 1ae4485..1caab28 100644
--- a/library/xmlreader.cpp
+++ b/library/xmlreader.cpp
@@ -1,137 +1,152 @@
/**********************************************************************
-** Copyright (C) 2000 Trolltech AS. All rights reserved.
+** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
**
-** This file is part of Qtopia Environment.
+** This file is part of the Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "xmlreader.h"
+/*! \class Node xmlreader.h
+ \brief A single element in an XML structure defined by XmlHandler
+
+ \ingroup qtopiaemb
+ */
+
Node::Node()
: parent( 0 ), prev( 0 ),
next( 0 ), first( 0 ), last( 0 )
{
}
Node::~Node()
{
Node *n = first, *m;
while ( n ) {
m = n->next;
delete n;
n = m;
}
}
void Node::addChild( Node *child )
{
child->parent = this;
if ( last )
last->next = child;
child->prev = last;
if ( !first )
first = child;
last = child;
}
QString Node::attribute( const QString& name )
{
return attributes[name];
}
void Node::setAttributes( const QXmlAttributes &a )
{
for ( int i = 0; i < a.length(); i++ )
attributes[ a.qName( i ) ] = a.value( i );
}
QMap<QString, QString> Node::attributeMap()
{
return attributes;
}
QString Node::subData(const QString& tag) const
{
Node* c = firstChild();
while ( c ) {
if ( c->tagName() == tag )
return c->data();
c = c->nextNode();
}
return QString::null;
}
+/*! \class XmlHandler xmlreader.h
+ \brief XML document structure holder
+
+ This class provides a Node structure that developers can read their
+ xml data into.
+
+ \ingroup qtopiaemb
+*/
+
XmlHandler::XmlHandler()
: node( 0 ), tree( 0 )
{
}
XmlHandler::~XmlHandler()
{
}
bool XmlHandler::startDocument()
{
tree = node = new Node;
node->setTagName( "DOCUMENT" );
return TRUE;
}
bool XmlHandler::endDocument()
{
if ( node != tree )
return FALSE;
return TRUE;
}
bool XmlHandler::startElement( const QString &, const QString &,
const QString &qName, const QXmlAttributes &attr )
{
Node *nnode = new Node;
nnode->setAttributes( attr );
nnode->setTagName( qName );
node->addChild( nnode );
node = nnode;
return TRUE;
}
bool XmlHandler::endElement( const QString &, const QString &, const QString & )
{
if ( node == tree )
return FALSE;
node = node->parentNode();
return TRUE;
}
bool XmlHandler::characters( const QString &ch )
{
node->appendData( ch );
return TRUE;
}