Qt之XML文件解析(DOM)
XML简介
和HTML的语法很相似,但不同之处在于: HTML 被设计用来显示数据,其关注的是数据的外观,XML 被设计用来传输和存储数据,其关注的是数据的内容,因此,XML主要用来作为数据的存储和共享。
XML文档是一种树的结构,从根部扩展到枝叶。以下是一个XML示例
<?xml version="1.0" encoding="UTF-8"?>
<root>
<!--写入矩形图元的信息-->
<class name="Rect">
<object name="obj1">
<x1>10</x1>
<y1>10</y1>
<x2>50</x2>
<y1>50</y1>
<linewidth>2</linewidth>
<scale>0</scale>
<rotate>0</rotate>
</object>
</class>
</root>
其中第一行 是XML 声明。它定义 XML 的版本和所使用的编码格式,<root> </root>为根节点的起始(在XML中可以自定义节点名称),<class> </class>为子元素,其中name为其属性,值为Rect;每一个子元素都可以拥有子元素,故class的子元素为object,依次类推; 所有的元素都可以有文本内容和属性,如x1的文本为10,x2的文本为50。
DOM类介绍
| Classes | 说明 |
|---|---|
| QDomAttr | 表示 QDomElement 的一个属性 |
| QDomCDATASection | 表示 XML CDATA 部分 |
| QDomCharacterData | 表示 DOM 中的通用字符串 |
| QDomComment | 表示 XML 注释 |
| QDomDocument | 表示一个 XML 文档 |
| QDomDocumentFragment | QDomNodes 树,不是完整的QDomDocument |
| QDomDocumentType | DTD 在文档树中的表示 |
| QDomElement | 表示 DOM 树中的一个元素 |
| QDomEntity | 表示一个 XML 实体 |
| QDomEntityReference | 表示 XML 实体引用 |
| QDomImplementation | 有关 DOM 实现的功能的信息 |
| QDomNamedNodeMap | 包含可以按名称访问的节点集合 |
| QDomNode | DOM 树中所有节点的基类 |
| QDomNodeList | QDomNode 对象列表 |
| QDomNotation | 表示 XML 表示法 |
| QDomProcessingInstruction | 表示 XML 处理指令 |
| QDomText | 表示解析的 XML 文档中的文本数据 |
其相关继承关系如下:

一个XML文档如果只做保存数据使用,那么以下XML的构成就足够使用了

节点类型
在QDomNode中,对XML中各种参数的区分是通过NodeType枚举实现的
enum NodeType {
ElementNode = 1,
Attribu

本文介绍了使用Qt的DOM方式解析XML文件的方法,包括XML文件的创建、读取、修改和删除操作,以及如何利用Qt类库进行节点的创建、查找、遍历等。
最低0.47元/天 解锁文章
2313

被折叠的 条评论
为什么被折叠?



