QT中使用QXmlStreamReader解析XML文件
XML文件由于其扩展性与兼容性的优点,被广泛用作软件和系统的配置文件。这里简要介绍一下QT下如何来解析XML文件。
源代码:
xml_reader.h
#ifndef XML_READER_H
#define XML_READER_H
#include <QtCore>
//#include <QtGui>
class xml_reader : public QXmlStreamReader
{
//Q_OBJECT
public:
xml_reader();
bool read(QIODevice *device);
private:
void read_data();
void read_startweek();
void read_eventnumber();
void read_period();
void read_id();
void read_starttime();
void read_endtime();
void read_exception();
void read_subexception();
void read_description();
void read_duration();
void read_event();
void read_offsettime();
void read_eventdesc();
void read_eventname();
void read_prompt();
void read_lasthandle();
void read_unknow();
};
#endif // XML_READER_H
xml_reader.cpp
#include "xml_reader.h"
xml_reader::xml_reader()
{}
bool xml_reader::read(QIODevice *device)
{
setDevice(device);
while(!atEnd())
{
readNext();
if(isStartElement())
{
if(name() == "data")
{
read_data();
}
}
}
return !error();
}
void xml_reader::read_data()
{
qDebug()<<"Start to read data...";
while(!atEnd())
{
readNext();
if(isStartElement())
{
if(name() == "period")
{
read_period();
}
if(name() == "startweek")
{
read_startweek();
}
if(name() == "eventnumber")
{
read_eventnumber();
}
}
if(isEndElement())
{
if(name() == "data")
{
qDebug()<<"Now at the end of data element...";
break;
}
}
}
}
void xml_reader::read_startweek()
{
相关文档:
1。写一个xml文件
<?xml version="1.0" encoding="utf-8" ?>
- <root>
- <user id="101">
<name>abc</name>
<password>abc</password>
</user>
- <user id="102">
<name>ccc</name>
<password>ccc< ......
我们常常需要读取xml文件,把里面的信息转化为我们自定义的类型,或则吧自定义类型转化为Xml字符串。在这里介绍一个比较简单的对象转化方法。在我自己的Framwork里面也多次用到。里面涉及到节点、属性、集合。
示例一 该xml文件涉及到属性、节点集合不涉及个节点:
<?xml version="1.0" encoding="utf-8"?>
<da ......
一、本章主要介绍.NET XML序列化,构建XML序列化的框架类,主要放在你的框架项目里面,类名字命名为Serialiser,我的框架项目名称是MingXu.FrameWork,我将Serialiser放到它下面,MingXu.FrameWork类型为Class Library
二、序列化类用到了2个dll,分别为:
System.Xml.Serialization:X ......
Flash中的XML对象也有方法可以将XML数据向服务器发送。即send和sendAndLoad。send方法向某个 URL 传递 XML 对象,返回的信息都被发送到另外一个浏览器窗口;sendAndLoad 方法向某个 URL 发送一个 XML 对象。返回的信息都放在一个XML对象中。
在某种程度上, XML的send方法和sendAndLoad方法类似于loadVars对象的send方法和 ......
一、简单介绍
using System.Xml;
//初始化一个xml实例
XmlDocument xml=new XmlDocument();
//导入指定xml文件
xml.Load(path);
xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));
//指定一个节点
XmlNode root=xml.SelectSingleNode("/root");
//获取节点下所有直接子节点
XmlNodeList ......