⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlreader.cpp

📁 Trolltech公司发布的图形界面操作系统。可在qt-embedded-2.3.10平台上编译为嵌入式图形界面操作系统。
💻 CPP
字号:
/************************************************************************ Copyright (C) 2000-2005 Trolltech AS.  All rights reserved.**** This file is part of the Qtopia Environment.** ** This program is free software; you can redistribute it and/or modify it** under the terms of the GNU General Public License as published by the** Free Software Foundation; either version 2 of the License, or (at your** option) any later version.** ** A copy of the GNU GPL license version 2 is included in this package as ** LICENSE.GPL.**** This program is distributed in the hope that it will be useful, but** WITHOUT ANY WARRANTY; without even the implied warranty of** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ** See the GNU General Public License for more details.**** In addition, as a special exception Trolltech gives permission to link** the code of this program with Qtopia applications copyrighted, developed** and distributed by Trolltech under the terms of the Qtopia Personal Use** License Agreement. You must comply with the GNU General Public License** in all respects for all of the code used other than the applications** licensed under the Qtopia Personal Use License Agreement. If you modify** this file, you may extend this exception to your version of the file,** but you are not obligated to do so. If you do not wish to do so, delete** this exception statement from your version.** ** 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 The Node class is a single element in an XML structure defined by XmlHandler.  \ingroup qtopiaemb  \sa XmlHandler *//*! \fn Node *Node::nextNode() const;  Returns the Node's next sibling.*//*! \fn Node *Node::prevNode() const;  Returns the Node's previous sibling.*//*! \fn Node *Node::parentNode() const;  Returns the Node's parent.*//*! \fn Node *Node::lastChild() const;  Returns the Node's last child.*//*! \fn Node *Node::firstChild() const;  Returns the Node's first child.*//*! \fn void Node::setTagName( const QString &s );  Sets the current tag's name to \a s.*//*! \fn QString Node::tagName() const;  Returns the current tag's name.*//*! \fn void Node::setData (const QString &s );  Sets the current tag's data to \a s.*//*! \fn QString Node::data() const;  Returns the current tag's data.*//*! \fn void Node::appendData ( const QString s );  Appends \a s to the current tag's data.*//*!  Creates an invalid Node*/Node::Node()    : parent( 0 ), prev( 0 ),      next( 0 ), first( 0 ), last( 0 ){}/*!  Destructs a Node, and deletes its children.*/Node::~Node(){    Node *n = first, *m;    while ( n ) {	m = n->next;	delete n;	n = m;    }}/*!  Safely sets Node \a child to be a child of this Node.*/void Node::addChild( Node *child ){    child->parent = this;    if ( last )	last->next = child;    child->prev = last;    if ( !first )	first = child;    last = child;}/*!  Returns the value of the attribute tagged as \a name.*/QString Node::attribute( const QString& name ){    return attributes[name];}/*!  Adds the attributes in \a a to the Node's current attributes,  overwriting any conflicts with existing attributes.*/void Node::setAttributes( const QXmlAttributes &a ){    for ( int i = 0; i < a.length(); i++ )	attributes[ a.qName( i ) ] = a.value( i );}/*!  Returns all of the Node's attributes.*/QMap<QString, QString> Node::attributeMap(){    return attributes;}/*!  Returns the value of the first attribute named \a tag from any  of the Node's children.*/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 The XmlHandler class is a XML document structure holder.  This class provides a tree of Nodes that developers can use to organise their  XML data.  \ingroup qtopiaemb  \sa Node*//*!  Creates an empty XmlHandler.*/XmlHandler::XmlHandler()    : node( 0 ), tree( 0 ){}/*!  Destructs an XmlHandler.*/XmlHandler::~XmlHandler(){}/*!  Initialises an XmlHandler with a root Node named DOCUMENT.  Returns TRUE if successful.*/bool XmlHandler::startDocument(){    tree = node = new Node;    node->setTagName( "DOCUMENT" );    return TRUE;}/*!  Returns TRUE if the XmlHandler contains a valid tree of Nodes.*/bool XmlHandler::endDocument(){    if ( node != tree )	return FALSE;    return TRUE;}/*!  Creates a new sub-element, with name \a qName and attributes \a attr.*/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;}/*!   Ends a sub-element safely.*/bool XmlHandler::endElement( const QString &, const QString &, const QString & ){    if ( node == tree )	return FALSE;    node = node->parentNode();    return TRUE;}/*!   Appends the data \a ch to the current Node.*/bool XmlHandler::characters( const QString &ch ){    node->appendData( ch );    return TRUE;}/*! \fn Node *XmlHandler::firstNode() const;  Returns the root Node of the tree.*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -