溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

XML文件結(jié)構(gòu)和基本語法是什么

發(fā)布時間:2020-07-16 10:36:50 來源:億速云 閱讀:228 作者:Leah 欄目:編程語言

XML文件結(jié)構(gòu)和基本語法是什么?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

                                                           XML文件結(jié)構(gòu)和基本語法

分類: html java2010-03-12 17:04 903人閱讀 評論(1) 收藏 舉報

4.1.1               XML文件結(jié)構(gòu)

一個XML文件通常包含文件頭和文件體兩大部分

1.         文件頭

XML文件頭由XML聲明與DTD文件類型聲明組成。其中DTD文件類型聲明是可以缺少的,關(guān)于DTD聲明將在后續(xù)的內(nèi)容中介紹,而XML聲明是必須要有的,以使文件符合XML的標準規(guī)格。

在前面的Flowers.xml文件中的第一行代碼即為XML聲明:

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

其中:

“<?”代表一條指令的開始,“?>”代表一條指令的結(jié)束;

“xml”代表此文件是XML文件;

“ version="1.0" ”代表此文件用的是XML1.0標準;

“ encoding="gb2312" ” 代表此文件所用的字符集,默認值為Unicode,如果該文件中要用到中文,就必須將此值設(shè)定為gb2312。

注意:XML聲明必須出現(xiàn)在文檔的第一行。

2.         文件體

文件體中包含的是XML文件的內(nèi)容,XML元素是XML文件內(nèi)容的基本單元。從語法講,一個元素包含一個起始標記、一個結(jié)束標記以及標記之間的數(shù)據(jù)內(nèi)容。

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

<標記名稱 屬性名1="屬性值1" 屬性名1="屬性值1" ……>內(nèi)容</標記名稱>

所有的數(shù)據(jù)內(nèi)容都必須在某個標記的開始和結(jié)束標記內(nèi),而每個標記又必須包含在另一個標記的開始與結(jié)束標記內(nèi),形成嵌套式的分布,只有最外層的標記不必被其他的標記所包含。最外層的是根元素(Root),又稱文件(Document)元素,所有的元素都包含在根元素內(nèi)。

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

4.1.2               XML的基本語法

1.         注釋

XML的注釋與HTML的注釋相同,以“<!--”開始,以“-->”結(jié)束。

2.         區(qū)分大小寫

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

3.         標記

XML標記與HTML標記相同,“<”表示一個標記的開始,“>” 表示一個標記的結(jié)束。XML中只要有起始標記,就必須有結(jié)束標記,而且在使用嵌套結(jié)構(gòu)時,標記之間不能交叉。

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

4.         屬性

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

5.         實體引用

實體引用是指分析文檔時會被字符數(shù)據(jù)取代的元素,實體引用用于XML文檔中的特殊字符,否則這些字符會被解釋為元素的組成部分。例如,如果要顯示“<”,需要使用實體引用“&lt;”否則會被解釋為一個標記的起始。

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

表 4.1 XML預定義的實體引用

6.         CDATA

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

<![CDATA[

這里的內(nèi)容可以直接顯示。

]]>

7.         處理指令

處理指令使用來給處理XML文件的應(yīng)用程序提供信息的,處理指令的格式如下:

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

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

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

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

4.2         XML與CSS

利用CSS可以用來設(shè)定XML文件的顯示方式,即在XML文件的頭部,XML聲明的下面加入下面一條語句:

<?xml:stylesheet type="text/css" href="css文件的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聲明下面加入以下語句:

<?xml:stylesheet type="text/css" href="flowers.css"?>

完整的程序代碼如下:

ex4_3_01.xml:利用CSS 顯示XML文件

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

<?xml:stylesheet type="text/css" href="Flowers.css"?>

<Flowers>

<Flower>

<Vendor>shop1</Vendor>

<Name>iris</Name>

<Price>$4.00</Price>

</Flower>

<Flower>

<Vendor>shop2</Vendor>

<Name>iris</Name>

<Price>$4.30</Price>

</Flower>

<Flower>

<Vendor>shop3</Vendor>

<Name>iris</Name>

<Price>$3.50</Price>

</Flower>

</Flowers>

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

圖 4.2 利用CSS 顯示XML文件

用CSS來顯示XML文件時,不具備任何選擇性,也就是說,根元素之下的所有數(shù)據(jù)都會被全部顯示,不能改變原文件的結(jié)構(gòu)和內(nèi)容的順序。另外,CSS并不支持中文標記,因為CSS 不是專門為XML開發(fā)的樣式語言,而下面要介紹到的XSL就可以,XSL是特別為XML設(shè)計的,它比CSS更為復雜。

4.3         XSL

在上一節(jié)介紹的用CSS顯示XML文件,效果不是很理想,實際上,CSS主要是適合HTML文件,對于XML這種數(shù)據(jù)文件,CSS就不適合了,尤其是對那些需要按照不同的條件將文件內(nèi)容重新排列顯示的情況,而用XSL就可以。

XSL是當前最強大和靈活的樣式語言,是特別為應(yīng)用XML而設(shè)計的,它比CSS要復雜的多。但是,目前它還未被很好的支持,也還沒有最后完成。

利用XSL來設(shè)定XML文件的顯示方式,即在XML文件的頭部,XML聲明的下面加入下面一條語句:

<?xml:stylesheet type="text/xsl" href="xsl文件的URL"?>

下面我們通過例子來介紹如何利用XSL來顯示XML文件。首先建立一個xsl文件,代碼如下:

flowers.xsl:用來顯示XML文件的xsl文件

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

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match = "/">

<table border="1">

<tr align="center">

<th width="100">Vendor</th>

<th width="100">Flower</th>

<th width="100">Price</th>

</tr>

<xsl:for-each select="//Flowers/Flower">

<tr align="center">

<td><xsl:value-of select="Vendor"/></td>

<td><xsl:value-of select="Name"/></td>

<td><xsl:value-of select="Price"/></td>

</tr>

</xsl:for-each>

</table>

</xsl:template>

</xsl:stylesheet>

我們可以看出:一個XSL文件就如一個空的HTML文件,通過填充一個XML文件產(chǎn)生一個傳統(tǒng)的HTML文件。

一個XSL文件首先必須有一個XML聲明(即第一行),因為XSL實際上是一種特殊的XML文件。XSL的根元素是xsl:stylesheet,即一個XSL文件必須以<xsl:stylesheet>標記開始,以</xsl:stylesheet>標記結(jié)束,xmlns:xsl屬性用于設(shè)定XSL的命名域。

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

然后是從XML文件中取得所需的數(shù)據(jù),取得數(shù)據(jù)最簡單的方法是:

<xsl:value-of select="模式"/>

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

<xsl:for-each select="模式">

…..

</xsl:for-each>

接下來,我們要在flowers.xml文件中使用這個xsl文件,即在flowers.xml文件中的XML聲明下面加入以下語句:

<?xml:stylesheet type="text/xsl" href="flowers.xsl"?>

完整的程序代碼如下:

ex4_4_01.xml:利用XSL 顯示XML文件

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

<?xml:stylesheet type="text/xsl" href="flowers.xsl"?>

<Flowers>

<Flower>

<Vendor>shop1</Vendor>

<Name>iris</Name>

<Price>$4.00</Price>

</Flower>

<Flower>

<Vendor>shop2</Vendor>

<Name>iris</Name>

<Price>$4.30</Price>

</Flower>

<Flower>

<Vendor>shop3</Vendor>

<Name>iris</Name>

<Price>$3.50</Price>

</Flower>

</Flowers>

看完上述內(nèi)容,你們掌握XML文件結(jié)構(gòu)和基本語法是什么的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI