Web設(shè)計(jì)中如何使用XML數(shù)據(jù)1
發(fā)表時(shí)間:2024-06-09 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]XML數(shù)據(jù)源對(duì)象是一個(gè)ActiveX控件,允許你在XML文件和HTML頁(yè)面之間操作數(shù)據(jù)。本文將向你展示如何從各種XML數(shù)據(jù)源中提取數(shù)據(jù),以及如何使用JavaScript顯示這些數(shù)據(jù)。 XML數(shù)據(jù)源對(duì)象DSO是一個(gè)微軟ActiveX控件,構(gòu)建在微軟IE4以后的版本上。這個(gè)對(duì)象允許你把一個(gè)外部的X...
XML數(shù)據(jù)源對(duì)象是一個(gè)ActiveX控件,允許你在XML文件和HTML頁(yè)面之間操作數(shù)據(jù)。本文將向你展示如何從各種XML數(shù)據(jù)源中提取數(shù)據(jù),以及如何使用JavaScript顯示這些數(shù)據(jù)。
XML數(shù)據(jù)源對(duì)象DSO是一個(gè)微軟ActiveX控件,構(gòu)建在微軟IE4以后的版本上。這個(gè)對(duì)象允許你把一個(gè)外部的XML文件或者嵌入HTML文件中的內(nèi)容提取到HTML頁(yè)面中。
你可以在一個(gè)Web頁(yè)面中使用XML - DSO從一個(gè)外部XML文件中選取內(nèi)容,從嵌入Web頁(yè)面的XML中提取XML數(shù)據(jù),然后使用JavaScript操作這些數(shù)據(jù)。然而,并不建議在Internet中使用這個(gè)對(duì)象,因?yàn)镈SO只能工作在MSIE 4以上的瀏覽器中,因此這可能會(huì)帶來(lái)一些兼容性問(wèn)題。 所以,在企業(yè)內(nèi)部網(wǎng)使用XML-DSO是很合適的。
開(kāi)始
為了初始化XML - DSO對(duì)象,我們使用<OBJECT>標(biāo)記。 用于XML-DSO的CLASSID是:
CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39
這ID唯一標(biāo)識(shí)XML-DSO。使用下面的代碼在一個(gè)Web頁(yè)面中初始化這個(gè)控件:
。糘BJECT ID="SomeID" CLASSID="CLSID:550dda30-0541-11d2-9ca9-0060b0ec3d39"></OBJECT>
雖然大部分對(duì)象需要許多參數(shù)與之相關(guān)聯(lián),但是XML-DSO不需要任何參數(shù)。
使用一個(gè)XML數(shù)據(jù)島析取數(shù)據(jù)
首先,通過(guò)使用<XML>標(biāo)記包含一個(gè)XML數(shù)據(jù)島。其次,給它分配一個(gè)ID,xmldb --以備以后使用。 數(shù)據(jù)實(shí)際上是使用HTML標(biāo)記:<ALT>,<SPAN>,<DIV>等等提取的。代碼列表1中的代碼使用了<SPAN>標(biāo)記。datasrc屬性指定了你想從中提取數(shù)據(jù)的那個(gè)數(shù)據(jù)島。datafld屬性指定了你想要的數(shù)據(jù)的XML標(biāo)記。所以,第一個(gè)<SPAN>提取名稱(chēng),而第二<SPAN>提取性別。
代碼列表1:
。!-- example1.htm -->
。糷tml>
。糷ead>
。紅itle>XML DSO-example1.htm</title>
。/head>
。糱ody bgcolor="#FFFFFF">
。紉ml id="xmldb">
。糳b>
。糾ember>
。糿ame>Premshree Pillai<name>
。約ex>male</sex>
</member>
。糾ember>
<name>Vinod</name>
<sex>male</sex>
。/member>
。/db>
。/xml>
。約pan datasrc="#xmldb" datafld="name"<</span>
<br>
。約pan datasrc="#xmldb" datafld="sex"></span>
。/body>
</html>
注意這段代碼沒(méi)有初始化一個(gè)XML-DSO對(duì)象。這是因?yàn)閄ML數(shù)據(jù)島的使用中已經(jīng)隱式地創(chuàng)建了一個(gè)。輸出應(yīng)為:
Premshree Pillai
male
注意在XML數(shù)據(jù)島中有兩個(gè)<name>和<sex>標(biāo)記。使用這個(gè)方法,你只能提取這些標(biāo)記中的第一個(gè)實(shí)例。代碼列表2中的代碼使用<TABLE>標(biāo)記提取所有的實(shí)例:
輸出將是:
Name Sex
Premshree Pillai male
Vinod male
在代碼列表2中,<TABLE>標(biāo)記使用<TD>標(biāo)記內(nèi)的<DIV>標(biāo)記提取數(shù)據(jù)。表格將自動(dòng)重復(fù)<member>(<name>和<sex>的母標(biāo)記)的每個(gè)實(shí)例。