- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
HYPERLINK /sbisyju/article/details/8701561 QT中如何实现XML文件的创建、增加、修改、删除功能。
分类:?QT学习2013-03-21 16:01?6285人阅读?评论(0)?收藏?举报
一、首先咱们得认识处理XML的方法有那些,QT提供了那些函数用于处理。
?
?????????????????????我们知道对XML的操作有两种方法,即DOM方式和SAX方式。二者主要区别是:DOM实现方式操作非常简单,但不适合处理过大文件;而SAX实现方式是能处理很大的XML文件,但是需要开发者写一些复杂的代码。Qt提供了对应于这两种用于读取、操作和编写XML的实现类,分别是QDomDocument类和QXmlStreamReader类,由于在项目中涉及的文件不大,因此我们选用QDomDocument类来
处理。
?
二、咱们需要了解XML文件的最常见格式:
?
?????????1、需要知道一个XML文件有且只有一个根节点;
???????? 2、子节点与元素的概念,以及它们之间的联系(如何包含);
?
?
三、对XML文件创建,读取、修改:
?
?
1. 创建节点,将其写入XML文件,主要操作包括:
?
?
QDomDocument doc;
1).创建根节点:QDomElement root = doc.createElement(root)
2).创建元素节点:QDomElement element = doc.createElement(nodeName);
3).添加元素节点到根节点:root. appendChild(element);
4).创建元素文本:QDomText nodeText=doc.createTextNode(text);
5).添加元素文本到元素节点:element. appendChild(nodeText);
?
在本项目中,假设便签的属性有序号、名字、内容、字体、字号、颜色、粗细、斜体、下划线这几项,则在文件中添加一个便签节点的操作如下:
QDomDocument doc;
instruction = doc.createProcessingInstruction(xml,version=1.0 encoding=UTF-8);
doc.appendChild(instruction);
QDomElement root = doc.createElement_x_x(Notes);
doc.appendChild(root);
QDomElement note = doc.createElement_x_x(note);
root.appendChild(note);
QDomElement no = doc.createElement_x_x(no);
note.appendChild(no);
...
...
QDomText no_text = doc.createTextNode(001);
...
...
则得到一个便签节点,将其保存到test.xml文件中,代码如下:
QFile file(test.xml);
if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate |QIODevice::Text))
return ;
QTextStream out(file);
out.setCodec(UTF-8);
doc.save(out,4,QDomNode::EncodingFromTextStream);
file.close();
则test.xml文件:
?xml version=1.0 encoding=UTF-8?
Notes
note
no001/no
name2010-05-10(13:53:24)/name
contentA meeting!/content
fontScript MT Bold/font
fontSize16/fontSize
color #00ffff/color
weight0/weight
fontItalictrue/fontItalic
fontUnderlinetrue/fontUnderline
/note
/Notes
上面是创建一个便签节点,若要继续添加便签节点,则需要在已有节点后增加一个新节点,并重写入XML文件。
?
2. 加载、查找便签时要读取XML文档中的节点信息,DOM实现方式是将整个文档当作一个对象来装入内存进行处理,然后开发者可以访问这个对象中的每一个节点,每一个节点对应XML文件里的一个标记。
?
主要操作包括:
1).读取根节点:QDomElement root = doc.documentElemen
文档评论(0)