搜尋
首頁web前端html教學XML與HTML之間的優勢互補(下)

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

例如:

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

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

● 建立TABLE元素,並將資料島ID賦值給DATAFLD屬性;

● 對於單獨的XML元素,如,建立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>

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

<TD><p DATAFLD=“isbn”>

</p></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、p和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元素。例如,有一個p元素名為pTitle,賦值程式碼如下所示:



pTitle.innerTEXT = sTitle

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


在腳本中處理各種事件的方法就是在<script>標籤中使用FOR屬性指定XML資料島ID,使用EVENT屬性來確定事件類型。 <br/><br/>例如,取得記錄集中條目的數量:<br/><br/><pre class='brush:php;toolbar:false;'>&lt;SCRIPT Language=“VB Script” FOR=“xmldso” EVENT=“onDataAvailable”&gt; lblRecords.value = booklist.RecordSet.RecordCount &lt;/SCRIPT&gt;</pre></script>

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

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

以上是XML與HTML之間的優勢互補(下)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何驗證您的HTML代碼?如何驗證您的HTML代碼?Apr 24, 2025 am 12:04 AM

HTML代碼可以通過在線驗證器、集成工具和自動化流程來確保其清潔度。 1)使用W3CMarkupValidationService在線驗證HTML代碼。 2)在VisualStudioCode中安裝並配置HTMLHint擴展進行實時驗證。 3)利用HTMLTidy在構建流程中自動驗證和清理HTML文件。

HTML與CSS和JavaScript:比較Web技術HTML與CSS和JavaScript:比較Web技術Apr 23, 2025 am 12:05 AM

HTML、CSS和JavaScript是構建現代網頁的核心技術:1.HTML定義網頁結構,2.CSS負責網頁外觀,3.JavaScript提供網頁動態和交互性,它們共同作用,打造出用戶體驗良好的網站。

HTML作為標記語言:其功能和目的HTML作為標記語言:其功能和目的Apr 22, 2025 am 12:02 AM

HTML的功能是定義網頁的結構和內容,其目的在於提供一種標準化的方式來展示信息。 1)HTML通過標籤和屬性組織網頁的各個部分,如標題和段落。 2)它支持內容與表現分離,提升維護效率。 3)HTML具有可擴展性,允許自定義標籤增強SEO。

HTML,CSS和JavaScript的未來:網絡開發趨勢HTML,CSS和JavaScript的未來:網絡開發趨勢Apr 19, 2025 am 12:02 AM

HTML的未來趨勢是語義化和Web組件,CSS的未來趨勢是CSS-in-JS和CSSHoudini,JavaScript的未來趨勢是WebAssembly和Serverless。 1.HTML的語義化提高可訪問性和SEO效果,Web組件提升開發效率但需注意瀏覽器兼容性。 2.CSS-in-JS增強樣式管理靈活性但可能增大文件體積,CSSHoudini允許直接操作CSS渲染。 3.WebAssembly優化瀏覽器應用性能但學習曲線陡,Serverless簡化開發但需優化冷啟動問題。

HTML:結構,CSS:樣式,JavaScript:行為HTML:結構,CSS:樣式,JavaScript:行為Apr 18, 2025 am 12:09 AM

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML的未來:網絡設計的發展和趨勢HTML的未來:網絡設計的發展和趨勢Apr 17, 2025 am 12:12 AM

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML與CSS vs. JavaScript:比較概述HTML與CSS vs. JavaScript:比較概述Apr 16, 2025 am 12:04 AM

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

HTML:是編程語言還是其他?HTML:是編程語言還是其他?Apr 15, 2025 am 12:13 AM

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),