XML(Extensible Markup Language,可擴展標記語言),是一種通用的文本格式,被普遍運用於數據交換和數據存儲,而不是顯示數據。XML的標籤沒有被預約義,用戶須要在使用時自行進行定義。XML是W3C(萬維網聯盟)的推薦標準。相對於數據庫表格的二維表示,XML使用的樹形結構更能表現出數據的包含關係,做爲一種文本文件格式,XML簡單明瞭的特性使得它在信息存儲和描述領域很是流行。數據庫
<?xml version="1.0" encoding="UTF-8"?>瀏覽器
<library>ide
<book id="01">編碼
<title>Qt</title>spa
<author>shiming</author>code
</book>xml
<book id="02">開發
<title>Linux</title>文檔
<author>yafei</author>it
</book>
</library>
每一個XML文檔都由XML說明(或者稱爲XML序言)開始,它是對XML文檔處理的環境和要求的說明,好比這裏的<?xmlversion="1.0" encoding="UTF-8"?>,其中xml version=「1.0」,代表使用的XML版本號,這裏字母是區分大小寫的;encoding=「UTF-8」是使用的編碼,指出文檔是使用何種字符集創建的,默認值爲Unicode編碼。XML文檔內容由多個元素組成,一個元素由起始標籤<標籤名>和終止標籤</標籤名>以及兩個標籤之間的內容組成,而文檔中第一個元素被稱爲根元素,好比這裏的<library></library>,XML文檔必須有且只有一個根元素。元素的名稱是區分大小寫的,元素還能夠嵌套,好比這裏的library、book、title和author等都是元素。元素能夠包含屬性,用來描述元素的相關信息,屬性名和屬性值在元素的起始標籤中給出,格式爲<元素名 屬性名=「屬性值」>,如<book id=「01」>,屬性值必須在單引號或者雙引號中。在元素中能夠包含子元素,也能夠只包含文本內容,好比這裏的<title>Qt</title>中的Qt就是文本內容。
XML文件頭由XML聲明與DTD文件類型聲明組成。其中DTD文件類型聲明是能夠缺乏的,而XML聲明是必需要有的,以使文件符合XML的標準規格。
XML聲明以下:
<?xml version="1.0" encoding="gb2312"?>
XML聲明必須在XML文檔的第一行
「<?」表明一條指令的開始,「?>」表明一條指令的結束;
「xml」表明此文件是XML文件;
「 version="1.0" 」表明此文件用的是XML1.0標準;
「 encoding="gb2312" 」 表明此文件所用的字符集,默認值爲Unicode,若是文件中要用到中文,就必須將此值設定爲gb2312。
文件體中包含的是XML文件的內容,XML元素是XML文件內容的基本單元。
一個元素包含一個起始標記、一個結束標記以及標記之間的數據內容。
XML元素的格式以下:
<標記名稱 屬性名1="屬性值1" 屬性名1="屬性值1" ……>內容</標記名稱>
全部的數據內容都必須在某個標記的開始和結束標記內,而每一個標記又必須包含在另外一個標記的開始與結束標記內,造成嵌套式的分佈,只有最外層的標記沒必要被其餘的標記所包含。最外層的是根元素(Root),又稱文件(Document)元素,全部的元素都包含在根元素內。
XML的註釋與HTML的註釋相同,以「<!--」開始,以「-->」結束。
在HTML中是不區分大小寫的,而XML區分大小寫,包括標記,屬性,指令等。
XML標記與HTML標記相同,「<」表示一個標記的開始,「>」 表示一個標記的結束。XML中只要有起始標記,就必須有結束標記,並且在使用嵌套結構時,標記之間不能交叉。
在XML中不含任何內容的標記叫作空標記,格式爲:<標記名稱/>
XML屬性的使用與HTML屬性基本相同,但須要注意的是屬性值要加雙引號。
實體引用是指分析文檔時會被字符數據取代的元素,實體引用用於XML文檔中的特殊字符,不然這些字符會被解釋爲元素的組成部分。例如,若是要顯示「<」,須要使用實體引用「<」不然會被解釋爲一個標記的起始。
在XML中由一個特殊的標記CDATA,在CDATA中全部文本都不會被XML處理器解釋,直接顯示在瀏覽器中,使用方法以下:
<![CDATA[這裏的內容能夠直接顯示]]>
處理指令使用來給處理XML文件的應用程序提供信息的,處理指令的格式以下:
<?處理指令名稱 處理指令信息?>
XML聲明就是一條處理指令:
<?xml version="1.0" encoding="gb2312"?>
其中,「xml」是處理指令名稱,version="1.0" encoding="gb2312"是處理指令信息。
QT中提供了QtXml模塊來進行XML文檔的處理。QtXml模塊提供三種對XML文檔的解析方法:
A、DOM方法,能夠進行讀寫;
B、SAX方法,能夠進行讀取;
C、基於流的方法,分別使用QXmlStreamReader和QXmlStreamWriter進行讀取和寫入。
使用XML模塊,在.pro文件中添加QT += xml,並加如相應的頭文件#include <QDomDocument>或者#include <QXmlStreamReader>。