QT開發(四十一)——XML文件解析基礎

QT開發(四十一)——XML文件解析基礎

1、XML文檔簡介

    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文檔必須有且只有一個根元素。元素的名稱是區分大小寫的,元素還能夠嵌套,好比這裏的librarybooktitleauthor等都是元素。元素能夠包含屬性,用來描述元素的相關信息,屬性名和屬性值在元素的起始標籤中給出,格式爲<元素名 屬性名=「屬性值」>,如<book id=「01」>,屬性值必須在單引號或者雙引號中。在元素中能夠包含子元素,也能夠只包含文本內容,好比這裏的<title>Qt</title>中的Qt就是文本內容。

2、XML文件結構

一、XML文件頭

    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文件內容的基本單元。

    一個元素包含一個起始標記、一個結束標記以及標記之間的數據內容。

XML元素格式以下:

<標記名稱 屬性名1="屬性值1" 屬性名1="屬性值1" ……>內容</標記名稱>

    全部的數據內容都必須在某個標記的開始和結束標記內,而每一個標記又必須包含在另外一個標記的開始與結束標記內,造成嵌套式的分佈,只有最外層的標記沒必要被其餘的標記所包含。最外層的是根元素(Root),又稱文件(Document)元素,全部的元素都包含在根元素內。

3、XML基本語法

1、註釋

    XML的註釋與HTML的註釋相同,以「<!--」開始,以「-->」結束。

二、區分大小寫

    在HTML中是不區分大小寫的,而XML區分大小寫,包括標記,屬性,指令等。

三、標記

    XML標記與HTML標記相同,「<」表示一個標記的開始,「>」 表示一個標記的結束。XML中只要有起始標記,就必須有結束標記,並且在使用嵌套結構時,標記之間不能交叉。

    在XML中不含任何內容的標記叫作空標記,格式爲:<標記名稱/>

4、屬性

    XML屬性的使用與HTML屬性基本相同,但須要注意的是屬性值要加雙引號。

5、實體引用

    實體引用是指分析文檔時會被字符數據取代的元素,實體引用用於XML文檔中的特殊字符,不然這些字符會被解釋爲元素的組成部分。例如,若是要顯示「<」,須要使用實體引用「<」不然會被解釋爲一個標記的起始。

六、CDATA

    在XML中由一個特殊的標記CDATA,在CDATA中全部文本都不會被XML處理器解釋,直接顯示在瀏覽器中,使用方法以下:

<![CDATA[這裏的內容能夠直接顯示]]>

 

7、處理指令

    處理指令使用來給處理XML文件的應用程序提供信息的,處理指令的格式以下:

<?處理指令名稱 處理指令信息?>

XML聲明就是一條處理指令:

<?xml version="1.0" encoding="gb2312"?>

其中,「xml」是處理指令名稱,version="1.0" encoding="gb2312"是處理指令信息。

4、QtXml模塊簡介

    QT中提供了QtXml模塊來進行XML文檔的處理QtXml模塊提供三種對XML文檔的解析方法:

A、DOM方法,能夠進行讀寫;

B、SAX方法,能夠進行讀取;

C、基於流的方法,分別使用QXmlStreamReaderQXmlStreamWriter進行讀取和寫入。  
   使用XML模塊,在.pro文件中添加QT += xml,並加如相應的頭文件#include <QDomDocument>或者#include <QXmlStreamReader>。

相關文章
相關標籤/搜索