- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话: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
您可能关注的文档
最近下载
- 《中国民航发展史》课件——1-2 近代中国航空的开展.pptx VIP
- 第2节_电生磁-教学课件.pptx VIP
- 上访事件应急处置方案.docx VIP
- 《中国民航发展史》课件——第六章 中国民航体制改革的继续深化与.pptx VIP
- 《核电子学》习题解答.docx
- 《中国民航发展史》课件——第三章 新中国民用航空事业的创立与初步发展.pptx VIP
- 《中国民航发展史》课件——第二章 第二次世界大战后快速崛起的中国民用航空.pptx VIP
- 心流体验之如何进入最佳心理状态的课件.pptx
- 牙科椅的使用注意事项和维护保养.pptx
- 《中国民航发展史》课件——第一章 中国民用航空的萌芽与初步发展.pptx VIP
文档评论(0)