免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
個(gè)人總結(jié)的xml,最適合初學(xué)者了,不信看看。(轉(zhuǎn))
XML將被用來(lái)描述、存儲(chǔ)數(shù)據(jù),而HTML則是用來(lái)格式化和顯示數(shù)據(jù)的。
XML DTD/Schema <->; 數(shù)據(jù)庫(kù)表結(jié)構(gòu)
XML 文件          <->; 數(shù)據(jù)庫(kù)表內(nèi)容
XML的文檔格式 
  首先介紹XML文檔內(nèi)容的基本單元——元素,它的語(yǔ)法格式如下: 
  〈標(biāo)簽〉文本內(nèi)容〈/標(biāo)簽〉 
  元素是由起始標(biāo)簽、元素內(nèi)容和結(jié)束標(biāo)簽組成。用戶(hù)把要描述的數(shù)據(jù)對(duì)象放在起始標(biāo)簽和結(jié)束標(biāo)簽之間。例如: 
  <姓名>;王平</姓名>; 
  無(wú)論文本內(nèi)容有多長(zhǎng)或者多么復(fù)雜,XML元素中還可以再嵌套別的元素,這樣使相關(guān)信息構(gòu)成等級(jí)結(jié)構(gòu)。下面的例子中,在<employees>;的元素中包括了所有職員的信息,每位職員都由<employee>;元素來(lái)描述,而<employee>;元素中又嵌套了<name>;和<salary>;元素。 
  例1: 
  <employees>; 
    <employee>; 
      <name>;Lars Peterson</name>; 
      <salary>;25000</salary>; 
    </employee>; 
    <employee>; 
      <name>;Charlotte M. Cooper</name>; 
      <salary>;34500</salary>; 
    </employee>; 
  </employees>; 
  除了元素,XML文檔中能出現(xiàn)的有效對(duì)象是:處理指令、注釋、根元素、子元素和屬性。 
● 處理指令 
  處理指令給XML解析器提供信息,使其能夠正確解釋文檔內(nèi)容,它的起始標(biāo)識(shí)是“<?”,結(jié)束標(biāo)識(shí)是“?>;”。常見(jiàn)的XML聲明就是一個(gè)處理指令: 
  <?xml version=“1.0”?>; 
  處理指令還可以有其他的用途,比如定義文檔的編碼方式是GB碼還是Unicode編碼方式,或是把一個(gè)樣式單文件應(yīng)用到XML文檔上用以顯示。 
● 注釋 
  注釋是XML文件中用作解釋的字符數(shù)據(jù),XML處理器不對(duì)它們進(jìn)行任何處理。注釋是用“<!--”和“ -->; ”引起來(lái)的,可以出現(xiàn)在XML元素間的任何地方,但是不可以嵌套: 
  <!--這是一個(gè)注釋-->; 
● 根元素和子元素 
  如果一個(gè)元素從文件頭的序言部分之后開(kāi)始一直到文件尾,包含了文件中所有的數(shù)據(jù)信息,我們稱(chēng)之為根元素。 
  XML元素是可以嵌套的,那么被嵌套在內(nèi)的元素稱(chēng)為子元素。在前面的例子中?lt;employee>;就是<employees>;的子元素。 
● 屬性 
  屬性給元素提供進(jìn)一步的說(shuō)明信息,它必須出現(xiàn)在起始標(biāo)簽中。屬性以名稱(chēng)/取值對(duì)出現(xiàn),屬性名不能重復(fù),名稱(chēng)與取值之間用等號(hào)“=”分隔,并用引號(hào)把取值引起來(lái)。例如:   <salary currency=“US$”>; 25000 </salary>; 
  上例中的屬性說(shuō)明了薪水的貨幣單位是美元。 
XML的語(yǔ)法 
  XML文檔的基本結(jié)構(gòu)由序言部分和一個(gè)根元素組成。序言包括了XML聲明和DTD(或者是XML Schema),DTD(Document Type Define,文檔定義類(lèi)型)和XML Schema都是用來(lái)描述XML文檔結(jié)構(gòu)的,也就是描述元素和屬性是如何聯(lián)系在一起的。 
  例如,在例1的文檔前面加上如下的序言部分,就構(gòu)成了一個(gè)完整的XML文檔: 
  <?xml version=“1.0”?>; 
  <!DOCTYPE employees SYSTEM“employees.dtd”>; 
  一個(gè)XML文檔中有且僅有一個(gè)根元素,其他所有的元素都是它的子元素,在例1中,<employees>;就是根元素。 
  一個(gè)XML文檔首先應(yīng)當(dāng)是“格式良好的”(Well-Formed),該規(guī)定的正式定義位于: 
  http://www.w3.org/TR/REC-xml 
  “格式良好的”XML文檔除了要滿(mǎn)足根元素唯一的特性之外,還包括: 
  ● 起始標(biāo)簽和結(jié)束標(biāo)簽應(yīng)當(dāng)匹配:結(jié)束標(biāo)簽是必不可少的; 
  ● 大小寫(xiě)應(yīng)一致:XML對(duì)字母的大小寫(xiě)是敏感的,<employee>;和<Employee>;是完全不同的兩個(gè)標(biāo)簽,所以結(jié)束標(biāo)簽在匹配時(shí)一定要注意大小寫(xiě)一致; 
  ● 元素應(yīng)當(dāng)正確嵌套:子元素應(yīng)當(dāng)完全包括在父輩元素中,下面的例子就是嵌套錯(cuò)誤: 
  <A>; 
    <B>; 
    </A>; 
  </B>; 
  正確的嵌套方式如下: 
  <A>; 
    <B>; 
    </B>; 
  </A>; 
  ● 屬性必須包括在引號(hào)中;
單引號(hào)雙引號(hào)都可以,一般是雙引號(hào)。 <gangster name=‘George "Shotgun" Ziegler‘>
  ● 元素中的屬性是不允許重復(fù)的。
數(shù)據(jù)既可以存儲(chǔ)在子元素中也可以存儲(chǔ)在屬性中, 我的經(jīng)驗(yàn)是屬性在HTML中可能相當(dāng)便利,但在XML中,你最好避免使用,把數(shù)據(jù)存儲(chǔ)到子元素中。有些時(shí)候應(yīng)該為一個(gè)元素設(shè)計(jì)一個(gè)ID引用,通過(guò)這個(gè)ID可以引用存取特定的XML元素,就象HTML中的name和id屬性一樣?! ?br>XML文檔的“有效性”是指一個(gè)XML文檔應(yīng)當(dāng)遵守DTD文件或是Schema的規(guī)定,“有效的”XML文檔肯定是“格式良好的”,有關(guān)內(nèi)容我們會(huì)在以后詳細(xì)說(shuō)明。 XML Schema(XML模式)是基于XML的DTD的替代品,DTD和Schema可以相互替代。
●XML的名稱(chēng)空間 
  XML文檔中很可能會(huì)定義許多名字相同而意義不同的元素或?qū)傩?,尤其在把不同的XML文檔合而為一時(shí),更容易產(chǎn)生沖突。名稱(chēng)空間就是為了解決這個(gè)問(wèn)題而提出的。它用URI(Uniform Resource Indicator,統(tǒng)一資源指示器)加以區(qū)別,是在XML文件的元素和屬性中出現(xiàn)的所有名稱(chēng)的集合。如下例: 
  <pr:payment xmlns:pr=“http://www. microsoft.com/payroll”>; 
  <pr:employee>;Lars Peterson</pr:employee>; 
  <pr:description>;Reimburse expenses</pr:description>; 
  <pr:total>;199.76</pr:total>; 
  </pr:payment>; 
  有了名稱(chēng)空間,用戶(hù)就可以保證在文件中使用的名稱(chēng)是唯一的。對(duì)元素的屬性xmlns進(jìn)行定義就表示對(duì)該元素指定了一個(gè)名稱(chēng)空間。namespace_name必須是一個(gè)有效的URI。 
  如果省略local_prefix(本地前綴),這時(shí)就構(gòu)成了缺省名稱(chēng)空間: 
  <payment xmlns=“http://www.microsoft.com/acct”>; 
  <customer>;1234</customer>; 
  <amount>;500.00</amount>; 
  <date_received>;12-03-2000</date_received>; 
  </payment>; 
  如果對(duì)一個(gè)元素定義了缺省名稱(chēng)空間,那么該元素及其子元素,包括它們的屬性都會(huì)自動(dòng)地成為該名稱(chēng)空間的一部分,不用再在每一個(gè)元素和屬性前面一一標(biāo)明了。
●使用XML,空白將被保留
在XML文檔中,空白部分不會(huì)被解析器自動(dòng)刪除。
這一點(diǎn)與HTML是不同的。在HTML中,這樣的一句話:
"Hello              my name is Ordm"將會(huì)被顯示成:“Hello my name is Ordm”,
因?yàn)镠TML解析器會(huì)自動(dòng)把句子中的空白部分去掉。
●XML元素命名
XML元素命名必須遵守下面的規(guī)則:
元素的名字可以包含子母,數(shù)字和其他字符。 
元素的名字不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開(kāi)頭。 
元素的名字不能以XML(或者xml,Xml,xMl...)開(kāi)頭。 
元素的名字不能包含空格。 
自己“發(fā)明”的XML元素還必須注意下面一些簡(jiǎn)單的規(guī)則:
任何的名字都可以使用,沒(méi)有保留字(除了XML),但是應(yīng)該使元素的名字具有可讀性,名字使用下劃線是一個(gè)不錯(cuò)的選擇。
例如: <first_name>, <last_name>.
盡量避免使用“-”,“.”,因?yàn)橛锌赡芤鸹靵y。
只要你愿意元素的名字可以很長(zhǎng),但也不要太夸張了哦。命名應(yīng)該遵循簡(jiǎn)單易讀的原則,例如:<book_title>是一個(gè)不錯(cuò)的名字,而<the_title_of_the_book>則顯得羅嗦了。 
XML文檔往往都對(duì)應(yīng)著數(shù)據(jù)表,我們應(yīng)該盡量讓數(shù)據(jù)庫(kù)中的字段的命名和相應(yīng)的XML文檔中的命名保持一致,這樣可以方便數(shù)據(jù)變換。
非英文/字符/字符串也可以作為XML元素的名字,例如<藍(lán)色理想><經(jīng)典論壇>這都是完全合法的名字。但是有一些軟件不能很好的支持這種命名,所以盡量使用英文字母來(lái)命名。
在XML元素命名中不要使用":",因?yàn)閄ML命名空間需要用到這個(gè)十分特殊的字符。

 

  在本文開(kāi)始部分,我們對(duì)XML這個(gè)新興的技術(shù)做了一個(gè)概述,對(duì)它的優(yōu)缺點(diǎn)進(jìn)行了分析,并對(duì)其美好的應(yīng)用前景進(jìn)行了展望。在本文后半部分則對(duì)XML文檔的相關(guān)語(yǔ)法、格式做了簡(jiǎn)要的描述,并介紹了幾種有用的開(kāi)發(fā)工具。在以后的內(nèi)容中,我們會(huì)全面展開(kāi),深入到XML技術(shù)內(nèi)部,去探索一下這個(gè)美妙的世界!

一、顯示XML 
  XML文檔本身只描述數(shù)據(jù)內(nèi)容,它的顯示功能由樣式單來(lái)完成。利用樣式單技術(shù)時(shí),輸出平臺(tái)不局限于顯示器,可以是打印機(jī)、繪圖儀或者是多媒體播放器。使用獨(dú)立的樣式單文件制定顯示格式的一大優(yōu)勢(shì)在于:對(duì)同一份數(shù)據(jù)文件可以制定不同的樣式風(fēng)格,應(yīng)用在不同的場(chǎng)合,使數(shù)據(jù)能夠更合理、更有針對(duì)性地表現(xiàn)出來(lái),提高了數(shù)據(jù)的重用性。 
  目前,W3C正式推薦的樣式單標(biāo)準(zhǔn)有兩種: 一種是層疊樣式單CSS(Cascading Style Sheets);另一種是可擴(kuò)展樣式單語(yǔ)言XSL。 
  CSS最初是用于制定HTML文檔顯示格式的,現(xiàn)在也可用來(lái)對(duì)XML文檔進(jìn)行簡(jiǎn)單的樣式規(guī)劃。CSS在HTML中的應(yīng)用極為廣泛,但它在文本置換、依據(jù)文本內(nèi)容而決定顯示方式、對(duì)數(shù)據(jù)進(jìn)行排序等智能化的顯示功能上略顯不足。 
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
  而XSL則較好地解決了CSS的這些問(wèn)題,它最常用的功能是將XML的置標(biāo)轉(zhuǎn)換成為HTML的置標(biāo)并顯示輸出。而且XSL還可以將XML文檔向任何其他格式的結(jié)構(gòu)文檔進(jìn)行轉(zhuǎn)換。這種功能在B2B的商務(wù)模式中有著很好的應(yīng)用前景。 
  XSL利用模式匹配的方法,選擇XML文檔中需要處理的元素/屬性,再針對(duì)這些特定的對(duì)象制定相應(yīng)的轉(zhuǎn)換規(guī)則。借助XSL,我們還可以添加新的元素/屬性,對(duì)所有元素/屬性進(jìn)行重新排序、循環(huán)處理、條件判斷等程序化的控制,使其適應(yīng)各種復(fù)雜的需求。 
  在XML文檔中引用XSL的格式如下: 
  <?xml-stylesheet type=“text/xsl” href=“Employees.xsl” ?>; 
  一個(gè)XML文檔只能引用一個(gè)XSL樣式單。XML解析器在處理XML文檔時(shí),遇到處理指令后,會(huì)載入指定的XSL樣式單,然后根據(jù)其中的規(guī)則進(jìn)行相應(yīng)的轉(zhuǎn)換處理。


二、綁定XML 
  Web服務(wù)器與客戶(hù)機(jī)之間的數(shù)據(jù)傳遞方式有三種: HTML頁(yè)面、XML文檔以及XML數(shù)據(jù)島。其中,XML數(shù)據(jù)島通過(guò)特定的標(biāo)簽把XML數(shù)據(jù)直接嵌入到HTML文檔中。采用數(shù)據(jù)島作為交互手段,不僅可以使數(shù)據(jù)具備一定的語(yǔ)義信息,同時(shí)還能保持HTML原有的一些特色,如利用用戶(hù)端腳本程序?qū)崿F(xiàn)動(dòng)態(tài)信息交換等。 
  XML數(shù)據(jù)島的實(shí)現(xiàn)方法是在HTML文檔中使用<XML>;標(biāo)簽。代碼的嵌入方式有兩種: 直接嵌入(如例1)和外部引用(如例2)。 
  例1: 
  <XML ID=“MyXMLData”>; 
  <?xml version=“1.0” ?>; 
  ……XML definitions…… 
  </XML>; 
  例2: 
  <XML ID=“MyXMLData” SRC=“http://www.microsoft.com/MyXMLData.xml”>; 
  </XML>; 
  在插入數(shù)據(jù)島之后,就可以把XML中的元素同HTML元素鏈接在一起,利用HTML的表現(xiàn)手法顯示XML數(shù)據(jù),這種鏈接關(guān)系被稱(chēng)為綁定。綁定的方式按照HTML元素的性質(zhì)可以分為兩種:?jiǎn)沃祵?duì)象和表格對(duì)象。 
  單值對(duì)象的數(shù)據(jù)綁定需要在HTML元素中設(shè)置DATASRC屬性和DATAFLD屬性。DATASRC屬性是區(qū)分XML數(shù)據(jù)島對(duì)象的唯一標(biāo)識(shí),并且必須加上前綴“#”;DATAFLD屬性則標(biāo)識(shí)了數(shù)據(jù)島中的元素對(duì)象。例3就是把一個(gè)HTML文本輸入框與<salary>;元素進(jìn)行了綁定。 
  例3: 
  <INPUT TYPE=“TEXT” 
  DATASRC=“#MyXMLData” 
  DATAFLD=“salary”>; 
  至于表格對(duì)象,主要是與HTML中的<TABLE>;標(biāo)簽綁定。一般地,可以借助DSO(Data Source Object,數(shù)據(jù)源對(duì)象)等ActiveX控件更方便、有效地處理表格數(shù)據(jù)。具體使用方法在以后的內(nèi)容中將做詳細(xì)介紹。
XML數(shù)據(jù)島可以綁定到HTML元素上(比如表格)。
在下面的例子中,一個(gè)XML數(shù)據(jù)島(ID=cdcat)被從外部XML文檔載入。一個(gè)HTML的表格綁定到此數(shù)據(jù)島上。HTML表格內(nèi)部的span元素使用datafld屬性和XML文檔相應(yīng)的XML元素相互綁定。
<html>
<body>
<xml id="cdcat" src="cd_catalog.xml"></xml>
<table border="1" datasrc="#cdcat">
<tr>
<td><span datafld="ARTIST"></span></td>
<td><span datafld="TITLE"></span></td>
</tr>
</table>
</body>
</html>


三、訪問(wèn)XML 
  Document Object Model(文檔對(duì)象模型)簡(jiǎn)稱(chēng)為DOM,是對(duì)Web文檔進(jìn)行應(yīng)用開(kāi)發(fā)、編程的應(yīng)用程序接口(API),是W3C公布的一種跨平臺(tái)的、與語(yǔ)言無(wú)關(guān)的接口規(guī)范。 
  DOM采用對(duì)象模型和一系列的接口來(lái)描述XML文檔的內(nèi)容和結(jié)構(gòu),即利用對(duì)象把文檔模型化。這種對(duì)象模型實(shí)現(xiàn)的基本功能包括: 
  ● 描述文檔表示和操作的接口; 
  ● 接口的行為和屬性; 
  ● 接口之間的關(guān)系以及互操作。 
  DOM對(duì)結(jié)構(gòu)化的XML文檔進(jìn)行解析,文檔中的指令、元素、實(shí)體、屬性等所有個(gè)體都可以用對(duì)象模型表示。整個(gè)文檔的邏輯結(jié)構(gòu)類(lèi)似一棵樹(shù),生成的對(duì)象模型就是樹(shù)的節(jié)點(diǎn),每個(gè)對(duì)象同時(shí)包含了方法和屬性。 
  利用DOM,開(kāi)發(fā)人員可以進(jìn)行動(dòng)態(tài)地創(chuàng)建XML文檔、遍歷結(jié)構(gòu)、添加/修改/刪除內(nèi)容等操作。DOM面向?qū)ο蟮奶匦?,使人們?cè)谔幚砗蚗ML解析相關(guān)的事務(wù)時(shí)節(jié)省大量精力,是一種符合代碼重用思想的強(qiáng)有力編程工具。


四、XML解析器
如果瀏覽器使用javascript作為腳本語(yǔ)言,那么利用下面的代碼可以創(chuàng)建XML文檔對(duì)象:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
如果瀏覽器使用VBScript作為腳本語(yǔ)言,那么利用下面的代碼可以創(chuàng)建XML文檔對(duì)象:
set xmlDoc=CreateObject("Microsoft.XMLDOM")
如果在ASP程序中使用VBScript腳本語(yǔ)言,那么就可以使用下面的代碼形式:
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
將XML文檔載入解析器
使用腳本代碼可以將XML文檔載入解析器。
下面的代碼可以將一個(gè)XML文檔載入解析器:
<script type="text/javascript">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
// ....... processing the document goes here
</script>
第二行代碼創(chuàng)建Microsoft XML解析器的實(shí)例。
第三行代碼關(guān)閉異步載入,確保XML解析器在把XML文檔完全載入以前不會(huì)對(duì)XML文檔進(jìn)行解析。
第四行則告訴解析器需要載入的XML文檔名字是note.xml。
把純XML文檔由字符載入解析器
解析器可以從一個(gè)文本字符串中載入XML文本。
下面的代碼演示了將文本字符串載入解析器:
<script type="text/javascript">
var text="<note>"
text=text+"<to>Tove</to><from>Jani</from>"
text=text+"<heading>Reminder</heading>"
text=text+"<body>Don‘t forget me this weekend!</body>"
text=text+"</note>"
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.loadXML(text)
// ....... processing the document goes here
</script>
注意這里載入字符串使用的是"loadXML()"方法)(而不是前面用過(guò)的"load()"方法), "loadXML()"是用于載入字符串,"load()"是用于載入XML文檔。
使用javascript語(yǔ)言顯示XML數(shù)據(jù)
可以使用javascript語(yǔ)言來(lái)顯示XML數(shù)據(jù)。
javascript (或者 VBScript)可以從XML文檔中導(dǎo)入數(shù)據(jù),并將這些數(shù)據(jù)在HTML頁(yè)面中顯示出來(lái)。
<html>
<head>
<script type="text/javascript"
for="window" event="onload">
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xml_note.xml")
nodes=xmlDoc.documentElement.childNodes
to.innerText=    nodes.item(0).text
from.innerText=  nodes.item(1).text
header.innerText=nodes.item(2).text
body.innerText=  nodes.item(3).text
</script>
<title>HTML using XML data</title>
</head>
<body bgcolor="yellow">
<h1>W3Schools.com Internal Note</h1>
<b>To: </b>
<span id="to"> </span>
<br />
<b>From: </b>
<span id="from"></span>
<hr>
<b><span id="header"></span></b>
<hr>
<span id="body"></span>
</body>
</html>

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
XML DOM介紹
xml數(shù)據(jù)編碼方式
XSLT輕松入門(mén)第二章:XSLT的實(shí)例
XML DOM
delphi操作xml學(xué)習(xí)筆記 之二 簡(jiǎn)單讀寫(xiě)
XML認(rèn)證教程,第 1 部分: XML簡(jiǎn)介
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服