XML
XML(eXtensible Markup Ianguage,可扩展标记语言)是普遍用于数据交换和数据存储的一种多用途文本文件格式。XML首先是由万维网协会(World WideWeb Consortium,W3C)作为SGML的一个替代品来开发的。它的语法规则与HTML相似,不过XML是一种用于语言分析的语言,它并没有要求专门的标记符属性或者条目。HIML的XML兼容版称为XHIML。
对于比较流行的SVG(可标量化矢量图形)XML格式QtSvg模块提供了可用于载入并呈现 SVG图像的类。对于使用MathML(数学标记语言)XML格式的绘制文档可以使用OtSolutions中的QMmlWidget。
对于一般的XML数据处理,Qt提供了QtXml模块。QtXml模块提供了三种截然不同的应用程序编程接口用来读取XML文档:
● QXmlSreamReader是一个用于读取格式良好的XML文档的快速解析器。
● DOM(文档对象模型)把XML文档转换为应用程序可以遍历的树形结构。
● SAX(XML简单应用程序编程接口)通过虚拟函数直接向应用程序报告"解析事件"。
QXmlStreamReader类最快且最易于使用它同时还提供了与其他Qt兼容的应用程序编程接口。它很适用于编写单通解析器。DOM的主要优点是它能以任意顺序遍历XML文档的树形表示,同时可以实现多通解析算法。有一些应用程序甚至使用DOM树作为它们的基本数据结构。SAX则因为一些历史原因而被得以沿用至今使用QXmIStreamReader通常会有更加简单高效的编码。
对于XML文件的写入,Qt也提供了三种可用的方法:
● 使用QXmlStreamWriters。
● 在内存中以DOM树的结构表示数据并要求这个树型结构将自己写到文件中。
● 手动生成XML。
使用QXmlStreamWriter是目前最简单易行的方式同时它也比手动生成XML文档更加可靠。使用DOM生成XML的方法在DOM树已作为应用程序的基本数据结构时才真正有意义。