婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > XML與HTML的結合(下)

XML與HTML的結合(下)

熱門標簽:東營電銷 微信地圖標注合并了 r語言數據可視化地圖標注 南寧網絡外呼系統運營商 高德地圖地圖標注服務中心 400電話辦理包年 如何修改多個百度地圖標注 本地電話機器人 隨州外呼調研系統

XML的嵌套處理

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

例如:

TABLE DATASRC=“#xmldso” DATAPAGESIZE=10>

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

● 創建TABLE元素,并將數據島ID賦值給DATAFLD屬性;

● 對于單獨的XML元素,如isbn>,創建TD元素,并設定相應的DATAFLD屬性;

● 對于重復元素,在TD元素內部嵌套一個表格;

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

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

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

完整的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效果最好的情況是針對結構對稱的數據,而處理非對稱數據更有效的辦法是使用我們以后將要介紹的DOM技術。

DSO技術的應用

1. 訪問元素的屬性

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

例如:

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

……

/book>

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

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

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

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

例如:

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

/XML>

Sub btnNext_onclick()

xmldso.RecordSet.MoveNext

End Sub

3.與Script語言相結合

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

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

Dim rsBooks

Set rsBooks = xmldso.RecordSet

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

Dim sTitle

sTitle = rsBooks(“title”)

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

divTitle.innerTEXT = sTitle

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

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

例如,獲取記錄集中條目的個數:

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

lblRecords.value = booklist.RecordSet.RecordCount

/SCRIPT>

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

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

標簽:益陽 德州 宿遷 果洛 拉薩 西雙版納 黃石 寧夏

巨人網絡通訊聲明:本文標題《XML與HTML的結合(下)》,本文關鍵詞  XML,與,HTML,的,結合,下,XML,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《XML與HTML的結合(下)》相關的同類信息!
  • 本頁收集關于XML與HTML的結合(下)的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 汤阴县| 大足县| 蓝山县| 吴川市| 余庆县| 正镶白旗| 方正县| 鲁甸县| 崇阳县| 仪征市| 尼玛县| 界首市| 昭平县| 弥渡县| 开远市| 左权县| 建湖县| 太仓市| 莲花县| 武邑县| 兴国县| 阿拉善盟| 城固县| 丰县| 洪雅县| 长宁区| 鸡泽县| 新丰县| 宜章县| 巴彦县| 长岛县| 南陵县| 南澳县| 渝中区| 横山县| 千阳县| 卫辉市| 旬邑县| 云霄县| 南汇区| 平罗县|