my2.xml
Qt
shimi
Linix
txwtech
SAX类文件:
class_sax.cpp
#include "class_sax.h"
#include
#include
#include
class_sax::class_sax()
{
list = new QListWidget();
// list->addItem("txwtec");
list->show();
//---------------------------
//Signal Received
// ---------------------------
//The inferior stopped because it received a signal from the operating system.
Signal name : ?Signal meaning : Unknown signal
// ---------------------------
// OK
// ---------------------------
}
class_sax::~class_sax()
{
// list = new QListWidget;
//delete list;
}
bool class_sax::ReadFile(const QString &fileName)
{
QFile file(fileName);//
QXmlInputSource input_source(&file);//读取文件内容
QXmlSimpleReader reader;//建立QXmlSimpleReader对象
reader.setContentHandler(this);//设置内容处理器
reader.setErrorHandler(this);//设置错误处理器
return reader.parse(input_source);//解析文件
}
//已经解析完一个元素的起始标签
bool class_sax::startElement(const QString &namespaceURI, const QString &localName, const QString &qName, const QXmlAttributes &atts)
{
if(qName=="书库")
list->addItem(qName);
else if(qName=="图书")
list->addItem(" "+qName+atts.value("编号"));
return true;
}
//已经解析完一块字符数据
bool class_sax::characters(const QString &ch)
{
currentText=ch;
return true;
}
//已经解析完一个元素的结束标签
bool class_sax::endElement(const QString &namespaceURI, const QString &localName, const QString &qName)
{
if(qName=="书名"||qName=="作者")
list->addItem(" "+qName+":"+currentText);
return true;
}
//错误处理
bool class_sax::fatalError(const QXmlParseException &exception)
{
qDebug()
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?