六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

XML與HTML的結(jié)合(下)

[摘要]XML的嵌套處理 一般情況下,我們從數(shù)據(jù)庫中查詢得到的結(jié)果集可能很大,所以從服務(wù)器返回到客戶端時,數(shù)據(jù)會被分成若干個頁面分別進行傳遞。此時,利用TABLE元素中的DATAPAGESIZE屬性可以指定...

XML的嵌套處理

一般情況下,我們從數(shù)據(jù)庫中查詢得到的結(jié)果集可能很大,所以從服務(wù)器返回到客戶端時,數(shù)據(jù)會被分成若干個頁面分別進行傳遞。此時,利用TABLE元素中的DATAPAGESIZE屬性可以指定每個頁面包含記錄集條目的個數(shù)。

例如:

<TABLE DATASRC=“#xmldso” DATAPAGESIZE=10>

很顯然,如果XML數(shù)據(jù)格式是對稱的,則無論是映射到ADO記錄集還是綁定到表格元素上,效果都會很好。而在實際應(yīng)用中,XML數(shù)據(jù)為非對稱的例子也很多,比如一本書的作者可能就不止一位,這在映射和綁定時都會產(chǎn)生一定的麻煩。解決問題的辦法就是利用嵌套。每一行表格仍對應(yīng)一條主元素,每一欄也對應(yīng)著一個子元素。對于重復(fù)元素,則使用嵌套的表格。我們假設(shè)在books.xml中,第一本書的作者為Dean Straight,第二本書的作者為Charlotte Cooper、Shelley Burke和Regina Murphy。此時,綁定過程如下:

● 創(chuàng)建TABLE元素,并將數(shù)據(jù)島ID賦值給DATAFLD屬性;

● 對于單獨的XML元素,如<isbn>,創(chuàng)建TD元素,并設(shè)定相應(yīng)的DATAFLD屬性;

● 對于重復(fù)元素,在TD元素內(nèi)部嵌套一個表格;

● 用單行單列的形式顯示作者信息。

注意這里的DATAFLD屬性必須設(shè)定為“$TEXT”,

以保證嵌套元素的內(nèi)容被全部顯示在指定的元素中。

完整的HTML代碼如下所示:

<TABLE BORDER=1 DATASRC=“#xmldso”>

<THEAD><TR><TH>Title</TH>

<TH>ISBN</TH>

<TH>Author</TH></TR></THEAD>

<TBODY>

<TR><TD>

<DIV DATAFLD=“title”></DIV></TD>

<TD><DIV DATAFLD=“isbn”>

</DIV></TD>

<TD>

<TABLE BORDER=0 DATASRC=“#xmldso” DATAFLD=“author”>

<TR><TD><SPAN DATAFLD=“$Text”></SPAN></TD></TR>

</TABLE>

</TD>

</TR></TBODY>

</TABLE>

事實上,使用DSO效果最好的情況是針對結(jié)構(gòu)對稱的數(shù)據(jù),而處理非對稱數(shù)據(jù)更有效的辦法是使用我們以后將要介紹的DOM技術(shù)。

DSO技術(shù)的應(yīng)用

1. 訪問元素的屬性

用DSO訪問元素的屬性很簡單,可以直接把屬性按子元素來處理。

例如:

<book isbn=“9-001-122-12”>

……

</book>

這樣,在綁定到HTML表格中時,就可以直接按子元素來處理:

<TD><SPAN DATAFLD=“isbn”> </SPAN></TD>

如果遇到屬性名和子元素名一樣的情況,在元素名前加上“!”進行區(qū)分。 2.遍歷記錄集

DSO把XML數(shù)據(jù)島當(dāng)做ADO記錄集進行處理的一大好處是可以利用ADO提供的各種方法對數(shù)據(jù)源進行訪問,尤其是當(dāng)把數(shù)據(jù)島與類似SPAN、DIV和INPUT等HTML元素綁定時。通常這些元素顯示的是記錄集的首條記錄,要想對記錄集進行遍歷瀏覽,可以使用ADO的方法 : Move、MoveFirst、MoveLast、MoveNext和MovePrevious。比如創(chuàng)建一個按鈕響應(yīng)函數(shù),只要用戶點擊“Next”按鈕,就可以逐條瀏覽相應(yīng)的記錄。

例如:

<XML ID=“xmldso” SRC=“books.xml”>

</XML>

Sub btnNext_onclick()

xmldso.RecordSet.MoveNext

End Sub

3.與Script語言相結(jié)合

有些用戶比較習(xí)慣編寫Script語言,利用DSO技術(shù)同樣可以與各種Script很好地結(jié)合在一起。

例如(以VB Script為例),訪問記錄集時,代碼如下:

Dim rsBooks

Set rsBooks = xmldso.RecordSet

訪問字段(子元素)的值:

Dim sTitle

sTitle = rsBooks(“title”)

可以使用innerText和innerHTML屬性把得到的值傳遞給HTML元素。例如,有一個DIV元素名為divTitle,賦值代碼如下所示:

divTitle.innerTEXT = sTitle

利用腳本程序還可以處理許多DSO事件,下表列舉了其中的一部分事件:

在腳本中處理各種事件的方法就是在<SCRIPT>標(biāo)簽中使用FOR屬性指定XML數(shù)據(jù)島ID,使用EVENT屬性確定事件類型。

例如,獲取記錄集中條目的個數(shù):

<SCRIPT Language=“VB Script” FOR=“xmldso” EVENT=“onDataAvailable”>

lblRecords.value = booklist.RecordSet.RecordCount

</SCRIPT>

除了顯示記錄數(shù)據(jù)之外,腳本程序還可以對記錄集進行快速查詢、排序、編輯等操作。但要指出的是,雖然ADO技術(shù)中提供了類似SortColumn和SortAscending等方法對XML數(shù)據(jù)進行排序,但是效果不如XSL中的排序操作,所以建議大家充分利用XSL技術(shù)來實現(xiàn)這部分功能。

其余的功能,如利用腳本對記錄集進行諸如增加、刪除、修改等操作,或是分頁顯示HTML表格等等,在這里就不一一舉例說明了,用法與前面的操作大同小異。最后需要說明的是,所有對DSO對象的操作都是在用戶端完成的,實際上是服務(wù)器數(shù)據(jù)對象的一份復(fù)制品,這樣做的好處是避免了網(wǎng)絡(luò)承受大量數(shù)據(jù)通信的負(fù)擔(dān)。但這時用戶端所做的任何操作對服務(wù)器上存儲的數(shù)據(jù)毫無影響,如果要想對服務(wù)器記錄也進行修改,那么就要用到客戶端與服務(wù)器端的數(shù)據(jù)交換技術(shù),我們將在以后對此進行介紹。





主站蜘蛛池模板: 午夜观看 | 色噜噜狠狠成人网 | 青青草原在线免费观看视频 | 天堂网在线最新版www中文网 | 亚洲人网 | 四虎永久视频 | 日韩艹 | 亚洲a级黄色片 | 四虎8848永久在线 | 视频一区二区中文字幕 | 天天透天天射 | 全黄色毛片 | 五月婷六月丁香 | 最新国产福利片在线观看 | 日本亚洲天堂 | 日本成人在线网站 | 一级做a爰片久久毛片 | 日本亚欧乱色视频在线观看 | 五月天久久婷婷 | 日韩高清成人毛片不卡 | 午夜精品视频在线 | 天堂色区 | 亚洲国产精品欧美日韩一区二区 | 午夜欧美成人久久久久久 | 一区二区三区在线免费视频 | 日本视频免费观看 | 香港三级欧美国产精品 | 日韩三级在线免费观看 | 午夜小视频男女在线观看 | 色综合网站在线 | 天堂网在线网站成人午夜网站 | 欧美性理论片在线观看片免费 | 天天摸天天澡天天碰天天弄 | 五月香福利 | 伊人任线任你躁 | 亚洲欧美日韩第一页 | 午夜激情视频在线观看 | 亚洲无毛 | 日韩日韩日韩 | 伊人网中文字幕 | 亚洲福利一区二区精品秒拍 |