日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

XML 文件结构与语法

發(fā)布時(shí)間:2023/12/20 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 XML 文件结构与语法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ML文件結(jié)構(gòu)和基本語法
2011年09月25日 22:24:10閱讀數(shù):77575

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

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

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

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

1.?????????文件頭

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

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

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

??????????????其中:

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

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

“?version="1.0"?”代表此文件用的是XML1.0標(biāo)準(zhǔn);

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

?

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

?

2.?????????文件體

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

?

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

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

?

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

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

4.1.2 ?XML的基本語法

1.?????????注釋

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

?

2. ?區(qū)分大小寫

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

?

3. ?標(biāo)記

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

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

?

4. 屬性

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

?

5. ? ?實(shí)體引用

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

XML中有5個(gè)預(yù)定義的實(shí)體引用,如表?4.1所示。

表?4.1?XML預(yù)定義的實(shí)體引用

&lt;

<?

&gt;

>?

&quot;

"

&apos;

'

&amp;

&

?

6. ? CDATA

在XML中由一個(gè)特殊的標(biāo)記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文件。首先建立一個(gè)css文件,代碼如下:

?

flowers.css:一個(gè)顯示XML文件的CSS樣式

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

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

price{display:block}

?

然后,在flowers.xml文件中使用這個(gè)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í),不具備任何選擇性,也就是說,根元素之下的所有數(shù)據(jù)都會被全部顯示,不能改變原文件的結(jié)構(gòu)和內(nèi)容的順序。另外,CSS并不支持中文標(biāo)記,因?yàn)镃SS?不是專門為XML開發(fā)的樣式語言,而下面要介紹到的XSL就可以,XSL是特別為XML設(shè)計(jì)的,它比CSS更為復(fù)雜。

4.3 ? ? XSL

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

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

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

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

?

下面我們通過例子來介紹如何利用XSL來顯示XML文件。首先建立一個(gè)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>

?

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

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

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

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

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

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

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

…..

</xsl:for-each>

?

?

接下來,我們要在flowers.xml文件中使用這個(gè)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>

例如,一個(gè)完整的XML文件內(nèi)容:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<root>
? <Resample_Info Resample_1="0.5" Resample_2="1" >
? </Resample_Info>
? <Elc_T_Info Elc_T_1="-0.0073" Elc_T_2="310.71" ?>
? ? </Elc_T_Info>
? <V_5v_Info V_5v_1="2048" V_5v_2="2048" V_5v_3="10" V_5v_4="2" ?>
? ? </V_5v_Info>
? <Num5v_Info Num5v_1="6.67" ?>
? ? </Num5v_Info>
? <FGM1_12p_Info FGM1_12p_1="128" ?FGM1_12p_2="3" FGM1_12p_3="4.16" ?>
? ? </FGM1_12p_Info>
? <FGM1_12n_Info FGM1_12n_1="128" ?FGM1_12n_2="7" FGM1_12n_3="4.16" ?>
? ? </FGM1_12n_Info>
? <FGM2_12p_Info FGM2_12p_1="128" ?FGM2_12p_2="3" FGM2_12p_3="4.16" ?> ?
? ? </FGM2_12p_Info>
? <FGM2_12n_Info FGM2_12n_1="128" ?FGM2_12n_2="4.16" >
? ? </FGM2_12n_Info>
? <CDSM5V_Info CDSM5V_1="128" ?CDSM5V_2="128" CDSM5V_3="10.0" ?CDSM5V_4="0.25" CDSM5V_5="20.0" ?>
? ? </CDSM5V_Info>
? <CDSM12P_Info CDSM12P_1="128" ?CDSM12P_2="20" CDSM12P_3="128" ?CDSM12P_4="10" CDSM12P_5="3.3" CDSM12P_6="4.3" CDSM12P_7="33.0" ?>
? ? </CDSM12P_Info>
? <CDSM12N_Info CDSM12N_1="128" ?CDSM12N_2="22" CDSM12N_3="128" ?CDSM12N_4="10" CDSM12N_5="5" CDSM12N_6="33" ?>
? ? </CDSM12N_Info>
? <PATH xml_info="/home/dps/Release/HPMRelease/XML/metadata.xml" OutPut="/workspace/DPS/Data/DataRoot/HPMDataRoot" Idl_path="/home/dps/Release/HPMRelease/python/SCML3_4_draw/Main.py" Earthquake_path="/home/dps/Release/IDLCode/SCM/EarthQuakeImfro/aekp">
? ? </PATH>?
? <Orbit orbit_num="76" >
? </Orbit>?
</root>

總結(jié)

以上是生活随笔為你收集整理的XML 文件结构与语法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。