成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Web設(shè)計(jì)中使用XML數(shù)據(jù)源對(duì)象的方法

小編給大家分享一下Web設(shè)計(jì)中使用XML數(shù)據(jù)源對(duì)象的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、新和ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的新和網(wǎng)站制作公司

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ì)帶來一些兼容性問題。 所以,在企業(yè)內(nèi)部網(wǎng)使用XML-DSO是很合適的。

開始

為了初始化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ù)

首先,通過使用<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>提取名稱,而第二<SPAN>提取性別。

代碼列表1:

<!-- example1.htm -->
<html>
<head>
<title>XML DSO-example1.htm</title>
</head>
<body bgcolor="#FFFFFF">
<xml id="xmldb">
<db>
<member>
<name>PRemshree Pillai<name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
</db>
</xml>

<span datasrc="#xmldb" datafld="name"<</span>
<br>
<span datasrc="#xmldb" datafld="sex"></span>

</body>
</html>

注意這段代碼沒有初始化一個(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í)例:

輸出將是:

NameSex
Premshree Pillaimale
Vinodmale

在代碼列表2中,<TABLE>標(biāo)記使用<TD>標(biāo)記內(nèi)的<DIV>標(biāo)記提取數(shù)據(jù)。表格將自動(dòng)重復(fù)<member>(<name>和<sex>的母標(biāo)記)的每個(gè)實(shí)例。

代碼列表2:

<!-- example2.htm -->
<html>
<head>
<title>XML DSO-example2.htm</title>
</head>
<body bgcolor="#FFFFFF">

<xml id="xmldb">
<db>
<member>
<name>Premshree Pillai<name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
</db>
</xml>

<table datasrc="#xmldb" border="1">
<thead>
<th>Name</th>
<th>Sex</th>
</thead>
<tr>
<td><div datafld="name"></div></td>
<td><div datafld="sex"></div></td>
</tr>
</table>

</body>
</html>

使用外部XML文件提取數(shù)據(jù)

為了使用XML-DSO加載一個(gè)外部XML文件,你必須顯式的包含這個(gè)對(duì)象并且使用一些JavaScript。

首先創(chuàng)建一個(gè)XML-DSO對(duì)象,使用ID myXML。添加寬度和高度屬性到<OBJECT>標(biāo)記中,然后設(shè)置它們的值為0。這保證XML-DSO對(duì)象不會(huì)占據(jù)你的Web頁(yè)面的任何空間。

其次,使用datasrc創(chuàng)建一個(gè)象myXML一樣的表--類似于代碼列表2中一樣。代碼使用<DIV>標(biāo)記(在TD標(biāo)記之)提取數(shù)據(jù),使用datafld作為第一欄的信息,并且使用URL作為第二欄。添加<SCRIPT>標(biāo)記,因?yàn)樵谶@里,外部的XML使用Java腳本顯式地聲明你想要加載的XML文件。

設(shè)置變量xmlDso為myXML.XMLDocument。myXML引用你已經(jīng)創(chuàng)建的對(duì)象。接下來,使用XML-DSO的load()方法加載example3.xml。文件example3.xml連接到對(duì)象myXML上。

<!-- example3.xml -->
<?xml version="1.0" ?>
<ticker>
<item>
<message>JavaScript Ticker using XML DSO</message>
<URL>http://someURL.com</URL>
</item>
</ticker>

現(xiàn)在,研究一下下面的HTML頁(yè)面:

<!-- example3.htm -->
<html>
<head>
<title>XML DSO-example3.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myXML.XMLDocument;
xmlDso.load("example3.xml");
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

<o(jì)bject id="myXML" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" 
width="0" height="0"></object>

<table datasrc="#myXML" border="1">
<thead>
<th>Message</th>
<th>URL</th>
</thead>
<tr>
<td><div datafld="message"></div></td>
<td><div datafld="URL"></div></td>
</tr>
</table>

</body>
</html>

輸出應(yīng)是:

Message URL
   JavaScript Ticker using XML DSO http://someURL.com

上面的腳本非常特殊化。下面給出一個(gè)更一般的腳本:

<script language="JavaScript">
var xmlDso;
function load(xmlFile, objName) {
eval('xmlDso='+objName+'.XMLDocument');
xmlDso.load(xmlFile);
}
</script>
Now, to load any XML file use: 
load("SomeXMLFile.xml","anyXmlDsoObject");

使用XML-DSO和JavaScript

假設(shè)你有一個(gè)包含姓名、電子郵件地址和電話號(hào)碼的XML文件。你想使用它構(gòu)建一個(gè)應(yīng)用程序,顯示每個(gè)人的檔案--一次顯示一個(gè)。用戶將使用"Next"和"Previous"按鈕瀏覽每個(gè)人的數(shù)據(jù)。Javascript可以幫助你實(shí)現(xiàn)這個(gè)目的。

下面的代碼使用記錄集方法把文件中所有的數(shù)據(jù)保存到一個(gè)變量memberSet中。moveNext()方法指向下一個(gè)數(shù)據(jù)項(xiàng)(下一行)。腳本然后載入XML文件example4.xml,把記錄保存到變量memberSet中。第一個(gè)記錄將被顯示,但是memberSet.moveNext()指向文件中相對(duì)于前一個(gè)指定數(shù)據(jù)的下一個(gè)記錄。

<!-- example4.xml -->
<?xml version="1.0" ?>
<myDB>
<member>
<name>Premshree Pillai</name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
<member>
<name>Santhosh</name>
<sex>male</sex>
</member>
</myDB>

這里是相應(yīng)的HTML文件:

<!-- example4.htm -->
<html>
<head>
<title>XML DSO-example4.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myDB.XMLDocument;
xmlDso.load("example4.xml");

/* Get the complete record set */
var memberSet=myDB.recordset;

/* Go to next data */
memberSet.moveNext();
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

<o(jì)bject id="myDB" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" 
width="0" height="0"></object>

<span datasrc="#myDB" datafld="name"></span>

</body>
</html>

輸出應(yīng)是:

Vinod

下面給出更多使用JavaScript操作XML-DSO的方法:

· movePrevious(): 指向前一個(gè)數(shù)據(jù)項(xiàng)。

 · moveFirst(): 指向第一個(gè)數(shù)據(jù)項(xiàng)。

 · moveLast(): 指向最后一個(gè)數(shù)據(jù)項(xiàng)。

 · EOF: 這個(gè)屬性用來檢測(cè)我們是否已經(jīng)到達(dá)數(shù)據(jù)記錄的底部。

使用XML-DSO和JavaScript

假設(shè)你有一個(gè)包含姓名、電子郵件地址和電話號(hào)碼的XML文件。你想使用它構(gòu)建一個(gè)應(yīng)用程序,顯示每個(gè)人的檔案--一次顯示一個(gè)。用戶將使用"Next"和"Previous"按鈕瀏覽每個(gè)人的數(shù)據(jù)。Javascript可以幫助你實(shí)現(xiàn)這個(gè)目的。

下面的代碼使用記錄集方法把文件中所有的數(shù)據(jù)保存到一個(gè)變量memberSet中。moveNext()方法指向下一個(gè)數(shù)據(jù)項(xiàng)(下一行)。腳本然后載入XML文件example4.xml,把記錄保存到變量memberSet中。第一個(gè)記錄將被顯示,但是memberSet.moveNext()指向文件中相對(duì)于前一個(gè)指定數(shù)據(jù)的下一個(gè)記錄。

<!-- example4.xml -->
<?xml version="1.0" ?>
<myDB>
<member>
<name>Premshree Pillai</name>
<sex>male</sex>
</member>
<member>
<name>Vinod</name>
<sex>male</sex>
</member>
<member>
<name>Santhosh</name>
<sex>male</sex>
</member>
</myDB>

這里是相應(yīng)的HTML文件:

<!-- example4.htm -->
<html>
<head>
<title>XML DSO-example4.htm</title>
<script language="JavaScript">
function load() {
var xmlDso=myDB.XMLDocument;
xmlDso.load("example4.xml");

/* Get the complete record set */
var memberSet=myDB.recordset;

/* Go to next data */
memberSet.moveNext();
}
</script>
</head>
<body bgcolor="#FFFFFF" onLoad="load()">

<o(jì)bject id="myDB" CLASSID="clsid:550dda30-0541-11d2-9ca9-0060b0ec3d39" 
width="0" height="0"></object>

<span datasrc="#myDB" datafld="name"></span>

</body>
</html>

輸出應(yīng)是:

   Vinod

下面給出更多使用JavaScript操作XML-DSO的方法:

 · movePrevious(): 指向前一個(gè)數(shù)據(jù)項(xiàng)。

 · moveFirst(): 指向第一個(gè)數(shù)據(jù)項(xiàng)。

 · moveLast(): 指向最后一個(gè)數(shù)據(jù)項(xiàng)。

 · EOF: 這個(gè)屬性用來檢測(cè)我們是否已經(jīng)到達(dá)數(shù)據(jù)記錄的底部。

initTicker()首先檢查是否有IE 4+。如果瀏覽器是IE4+,這個(gè)XML文件被作為一個(gè)參數(shù)被傳遞并載入。如果定時(shí)器失敗了,那么調(diào)用xmlDsoTicker()函數(shù)。xmlDsoTicker()除了xmlFile參數(shù)以外,和initTicker()有相同的參數(shù),因?yàn)閄ML文件已經(jīng)被載入。xmlDsoTicker()檢查變量counter(初始值為maxMsgs)是否小于maxMsgs-1。如果是,moveNext()方法指向tickerSet中下一個(gè)數(shù)據(jù)項(xiàng)。

HTML頁(yè)面的BODY包含下面的代碼:

<a href="" datasrc="#ticker" datafld="URL" class="tickerStyle">
<span datasrc="#ticker" datafld="message"></span>
</a>

圖1:定時(shí)器應(yīng)用程序顯示輸出。

在這段代碼中,<A>標(biāo)記把XML文件的URL作為它的datafld。<SPAN>標(biāo)記把XML文件的信息作為它的datafld。這個(gè)信息在<SPAN>元素中顯示,然后整個(gè)信息可以通過這段信息相應(yīng)的URL連接。

這樣,<A>和<SPAN>元素包含下一個(gè)數(shù)據(jù)項(xiàng)(URL和信息)。在一段延遲以后,<A>和<SPAN>指向下一個(gè)數(shù)據(jù)。只要counter<maxMsgs-1(計(jì)數(shù)器每次遞增),這個(gè)操作就會(huì)發(fā)生。如果counter<maxMsgs-1是假,計(jì)數(shù)器就被設(shè)置為0,然后指向tickerSet中的第一個(gè)數(shù)據(jù)項(xiàng)。

以上是Web設(shè)計(jì)中使用XML數(shù)據(jù)源對(duì)象的方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

新聞名稱:Web設(shè)計(jì)中使用XML數(shù)據(jù)源對(duì)象的方法
網(wǎng)站鏈接:http://jinyejixie.com/article32/pgihsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、搜索引擎優(yōu)化網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化網(wǎng)站制作、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
霍林郭勒市| 襄汾县| 兰西县| 潼南县| 茌平县| 故城县| 醴陵市| 水城县| 井陉县| 监利县| 昭通市| 肇东市| 土默特右旗| 论坛| 淮安市| 信宜市| 乐山市| 南皮县| 米脂县| 陆丰市| 双鸭山市| 泰安市| 大厂| 陆川县| 达拉特旗| 延长县| 永泰县| 河池市| 云林县| 南阳市| 陇西县| 吉林省| 合山市| 甘洛县| 邯郸县| 舞阳县| 双峰县| 弥勒县| 嘉义市| 花莲县| 台中市|