-rw-r--r-- | library/xmlreader.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/library/xmlreader.h b/library/xmlreader.h new file mode 100644 index 0000000..2a51176 --- a/dev/null +++ b/library/xmlreader.h @@ -0,0 +1,83 @@ +/********************************************************************** +** Copyright (C) 2000 Trolltech AS. All rights reserved. +** +** This file is part of 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. +** +**********************************************************************/ +#ifndef XMLREADER_H +#define XMLREADER_H + +#include <qstring.h> +#include <qxml.h> +#include <qmap.h> + +class Node +{ +public: + Node(); + ~Node(); + + void addChild( Node *child ); + + void setAttributes( const QXmlAttributes &a ); + QMap<QString, QString> attributeMap(); + QString attribute( const QString& name ); + + Node *nextNode() const { return next; } + Node *prevNode() const { return prev; } + Node *parentNode() const { return parent; } + Node *lastChild() const { return last; } + Node *firstChild() const { return first; } + + void setTagName( const QString &s ) { tagN = s; } + QString tagName() const { return tagN; } + void setData( const QString &s ) { dt = s; } + QString data() const { return dt; } + QString subData(const QString& tag) const; + void appendData( const QString s ) { dt += s; } + + +private: + QMap<QString, QString> attributes; + QString dt, tagN; + + Node *parent, *prev, *next, *first, *last; +}; + +class XmlHandlerPrivate; +class XmlHandler : public QXmlDefaultHandler +{ +public: + XmlHandler(); + ~XmlHandler(); + + bool startDocument(); + bool endDocument(); + bool startElement( const QString &ns, const QString &ln, const QString &qName, + const QXmlAttributes &attr ); + bool endElement( const QString &ns, const QString &ln, const QString &qName ); + bool characters( const QString &ch ); + + Node *firstNode() const { return tree; } + +private: + Node *node, *tree; + XmlHandlerPrivate *d; +}; + + + +#endif |