- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
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.documentElement();
2).读取第一个子节点:QDomNode node = root.firstChi
您可能关注的文档
最近下载
- 2024年巡察整改专题民主生活会个人“聚焦四个方面”对照检查材料范文2篇.docx VIP
- 人工智能对文化产业的推动.pptx VIP
- 人教版(2024)七年级上册英语教学计划(含教学进度表).docx
- 软件的项目可行性的研究的报告编写.ppt VIP
- 一种用于处理高硫高砷金矿的提金剂及其制备方法.pdf VIP
- 中国甲状腺疾病诊治指南ppt.pptx VIP
- 《中国抗癌协会甲状腺癌整合诊治指南(2022精简版)》解读PPT课件.pptx VIP
- 一种澳洲坚果种质热敏感等级的精准诊断及其缓解新梢叶片热伤害的方法.pdf VIP
- 全球常见传染病防控概述.pptx VIP
- 棉花种子生产技术 棉花的生育特性 棉花的一生.docx VIP
文档评论(0)