[轉]XML檔案結構和基本語法

sdvingo發表於2011-08-17

檔案結構

一個XML檔案通常包含檔案頭和檔案體兩大部分

1. 檔案頭

XML檔案頭由XML宣告與DTD檔案型別宣告組成。其中DTD檔案型別宣告是可以缺少的,關於DTD宣告將在後續的內容中介紹,而XML宣告是必須要有的,以使檔案符合XML的標準規格。

在前面的Flowers.xml檔案中的第一行程式碼即為XML宣告:

其中:

”代表一條指令的開始,“?>”代表一條指令的結束;

xml”代表此檔案是XML檔案;

version="1.0" ”代表此檔案用的是XML1.0標準;

encoding="gb2312" 代表此檔案所用的字符集,預設值為Unicode,如果該檔案中要用到中文,就必須將此值設定為gb2312

注意:XML宣告必須出現在文件的第一行。

2. 檔案體

檔案體中包含的是XML檔案的內容,XML元素是XML檔案內容的基本單元。從語法講,一個元素包含一個起始標記、一個結束標記以及標記之間的資料內容。

XML元素與HTML元素的格式基本相同,其格式如下:

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

所有的資料內容都必須在某個標記的開始和結束標記內,而每個標記又必須包含在另一個標記的開始與結束標記內,形成巢狀式的分佈,只有最外層的標記不必被其他的標記所包含。最外層的是根元素(Root),又稱檔案(Document)元素,所有的元素都包含在根元素內。

在前面的Flowers.xml檔案中,根元素就是,根元素必須而且只能有一個,在該檔案有三個子元素,這樣的元素可以有多個。

的基本語法

1. 註釋

XML的註釋與HTML的註釋相同,以“<!--”開始,以“--&gt”結束。

2. 區分大小寫

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

3. 標記

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

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

4. 屬性

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

5. 實體引用

實體引用是指分析文件時會被字元資料取代的元素,實體引用用於XML文件中的特殊字元,否則這些字元會被解釋為元素的組成部分。例如,如果要顯示“<”,需要使用實體引用“<”否則會被解釋為一個標記的起始。

XML中有5個預定義的實體引用,如 4.1所示。

XML預定義的實體引用

<

<

>

>

"

"

'

'

&

&

6. CDATA

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

這裡的內容可以直接顯示。

]]>

7. 處理指令

處理指令使用來給處理XML檔案的應用程式提供資訊的,處理指令的格式如下:

處理指令名稱 處理指令資訊?>

例如,XML宣告就是一條處理指令:

其中,“xml”是處理指令名稱,version="1.0" encoding="gb2312"是處理指令資訊。

CSS

利用CSS可以用來設定XML檔案的顯示方式,即在XML檔案的頭部,XML宣告的下面加入下面一條語句:

檔案的URL"?>

下面我們透過例子來介紹如何利用CSS來顯示XML檔案。首先建立一個css檔案,程式碼如下:

flowers.css:一個顯示XML檔案的CSS樣式

flower{font-size:24px; display:block}

vendor{font-size:36px;color:red}

price{display:block}

然後,在flowers.xml檔案中使用這個css樣式,即在flowers.xml檔案中的XML宣告下面加入以下語句:

完整的程式程式碼如下:

ex4_3_01.xml:利用CSS 顯示XML檔案

shop1

iris

$4.00

shop2

iris

$4.30

shop3

iris

$3.50

此例在瀏覽器中的顯示效果如 4.2所示。

利用CSS 顯示XML檔案

CSS來顯示XML檔案時,不具備任何選擇性,也就是說,根元素之下的所有資料都會被全部顯示,不能改變原檔案的結構和內容的順序。另外,CSS並不支援中文標記,因為CSS 不是專門為XML開發的樣式語言,而下面要介紹到的XSL就可以,XSL是特別為XML設計的,它比CSS更為複雜。

在上一節介紹的用CSS顯示XML檔案,效果不是很理想,實際上,CSS主要是適合HTML檔案,對於XML這種資料檔案,CSS就不適合了,尤其是對那些需要按照不同的條件將檔案內容重新排列顯示的情況,而用XSL就可以。

XSL是當前最強大和靈活的樣式語言,是特別為應用XML而設計的,它比CSS要複雜的多。但是,目前它還未被很好的支援,也還沒有最後完成。

利用XSL來設定XML檔案的顯示方式,即在XML檔案的頭部,XML宣告的下面加入下面一條語句:

檔案的URL"?>

下面我們透過例子來介紹如何利用XSL來顯示XML檔案。首先建立一個xsl檔案,程式碼如下:

flowers.xsl:用來顯示XML檔案的xsl檔案

VendorFlowerPrice

我們可以看出:一個XSL檔案就如一個空的HTML檔案,透過填充一個XML檔案產生一個傳統的HTML檔案。

一個XSL檔案首先必須有一個XML宣告(即第一行),因為XSL實際上是一種特殊的XML檔案。XSL的根元素是xsl:stylesheet,即一個XSL檔案必須以標記開始,以標記結束,xmlns:xsl屬性用於設定XSL的命名域。

XSL的根元素通常是由一個或多個樣板元素所組成,在此例中只包含單一樣板,它是由標記開始,以標記結束,使用match屬性可以在XML檔案中選取符合條件的節點,即設定樣板名稱,對於最上層樣板,match設為“/”,代表整個XML檔案的根元素。

然後是從XML檔案中取得所需的資料,取得資料最簡單的方法是:

模式"/>

如果要取得多個元素,則要使用xsl:for-each元素,格式如下:

模式">

…..

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/443058/viewspace-1053952/,如需轉載,請註明出處,否則將追究法律責任。

相關文章