- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
?
HYPERLINK /sbisyju/article/details/8701561 QT中如何实现XML文件的创建、增加、修改、删除功能。
分类:? HYPERLINK /sbisyju/article/category/1333730 QT学习2013-03-21 16:01?6285人阅读? HYPERLINK /sbisyju/article/details/8701561 \l comments 评论(0)? HYPERLINK /sbisyju/article/details/javascript:void(0); \o 收藏 收藏? HYPERLINK /sbisyju/article/details/8701561 \l report \o 举报 举报
一、首先咱们得认识处理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
fontUnderlinet
您可能关注的文档
- pkpm参数设置的问题研讨.doc
- PKPM参数研讨.doc
- PKPM计算结果研讨.doc
- PKPM计算书研讨.doc
- PKPM教案研讨.doc
- PKPM结构设计软件在应用中的问题研讨.doc
- pkpm练习步骤-副本研讨.doc
- PKPM软件JCCAD筏板基础设计步骤举例研讨.doc
- PKPM软件在应用中的问题讲义研讨.doc
- PKPM数据研讨.doc
- 盘州市腾隆矿业有限公司建筑石料用灰岩矿(扩建)项目环评报告.docx
- 兰田河天柱县中寨至小沟溪段治理工程环评报告.docx
- 广西宁铁物资工业有限公司中石化宁铁加油站环评报告.docx
- 柳州市弘华得贸易有限公司煤堆场建设项目 报告表.docx
- 广西锦鹿福建材有限公司年产15万方沙子的沙场项目环评报告.docx
- 贵州仁怀市九重天酒业有限公司锅炉改造项目环评报告.docx
- 盘州市腾鑫矿业有限公司盘州市大山镇大地头村建筑石料用灰岩矿零星区块(扩建)项目环评报告.docx
- 凯里经济开发区贵繁节能建材有限公司涂料生产扩建项目环评报告.docx
- 柳州市友拓石料加工有限公司石渣、石粉生产加工项目环境影响报告表.docx
- 广西柳州装配式建筑现代化产业园—环保型商品混凝土搅拌站3号线环评报告.docx
文档评论(0)