曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
所需的信息,或者利用D O M再次將信息加載到數據庫中。
2. 客戶端的D O M
在編寫本書時,只有Microsoft Internet Explorer 5.0客戶端內置了D O M功能,N e t s c a p e及其
他瀏覽器的開發人員正在為它們的系統增加DOM Level 1支持。一旦支持D O M的瀏覽器被廣泛
使用, I n t e r n e t開發人員就能夠在客戶端利用D O M改善信息展示的方式,并減少與服務器的交
互。
(1) 靈活的客戶端展示
使文檔對于不同的客戶端可視變得越來越重要。根據客戶端的類型以及文檔的用途,客戶
端可能要通過多種方式展示文檔。例如,蜂窩電話提供商開始嘗試通過電話本身的微型L C D屏
幕提供有限形式的瀏覽。就這種目的而言, H T M L并不理想,因為它不包含說明標記中內容含義
的信息,它僅僅說明了如何展示這些內容。因此,電話的展示引擎不知道告訴用戶蛇的顏色以
及它是否有毒是不是非常重要。X M L通過將有關內容的信息作為標記的一部分解決了這個問題。
對于設備接收到的文檔,定制的瀏覽器可以使用D O M遍歷它的節點樹,并且有選擇地鑒別可以
忽略的信息。
(2) 客戶端數據輸入
隨著D O M與主要瀏覽器的集成,可以使用客戶端D O M對X M L文檔進行操作,為用戶提供
更高級的交互。系統可以從客戶端收集結構化信息,并將它一次性傳回服務器,而不必通過跨
越幾個頁面的一系列表單獲取這些信息。
5.2.3 DOM在出版過程中的應用
下面讓我們看一下如何在企業環境中利用D O M產生和操作X M L文檔。
1. DOM和數據庫
X M L為在不同的數據庫之間傳遞信息提供了理想的機制。從本質上講,數據庫是專有的
—每個數據庫有不同的元素命名結構,不同的規格化級別,甚至描述枚舉信息的方法也不盡
相同。利用D O M能夠簡化各種數據庫之間信息傳遞的方式。
通常,在數據庫之間傳遞數據時,必須為每種類型的傳輸構建定制的翻譯程序(參見圖
5 - 5)。
通過將D O M作為公共的傳輸機制,能夠大幅度減少需要編寫的翻譯程序的數量—每個數
據庫只要從公共的經過協商的X M L結構導入和導出即可(參見圖5 - 6)。
D O M能夠用于創建這些轉換機制。
2. 使用D O M創建復雜的X M L文檔
通過D O M操作X M L文檔的優點之一在于D O M是隨機訪問的,即:任何時刻都可以在X M L
樹的任何位置創建和附加節點。當你根據層次型或關系型數據庫中的信息構建X M L文檔時,這
一特征非常有價值。下面的例子有助于解釋這一優點。
假設我們有以下數據庫:
122使用XML 高級編程
下載
圖5-5
圖5-6
程序清單5 - 5
第5章文檔對象模型使用123 下載
SQL Server
數據庫
遺留的
ISAM/VSAM
數據庫
固定寬度
的文件
含分隔符
的文件
SQL Server
數據庫
公共的XML
格式
Oracle
數據庫
POET
數據庫
含分隔符
的文件
固定寬度
的文件
遺留的
ISAM/VSAM
數據庫
POET
數據庫
Oracle
數據庫
我們希望根據這些表中存儲的信息為特定的客戶ID創建一個XML文件,它應該具有以下形式:
程序清單5 - 6
如果打算手工編寫X M L文件,我們必須執行以下步驟:
• 從c u s t o m e r表中獲取客戶信息。
• 將客戶信息寫入X M L文件。
• 從i n v o i c e表中獲得該客戶的所有發票。
• 對于每個發票,執行以下操作:
• 將發票的信息寫入X M L文件。
• 從l i n e i t e m表中獲得該發票的所有行式項目。
• 對于每個行式項目,執行以下操作。
• 將行式項目的信息寫入X M L文件。
• 寫入發票對象的結束標記。
• 寫入客戶對象的結束標記。
然而,如果使用D O M,我們將通過以下方法產生節點樹。
• 產生客戶根節點。
124使用XML 高級編程
下載
• 獲取客戶的所有發票。
• 為每個發票創建一個節點,并將它附加到客戶節點。
• 獲取客戶的所有行式項目。
• 為每個行式項目創建一個節點,并將它附加到適當的發票節點。
這是一個簡單的例子,但是它足以說明通過D O M創建X M L文檔比將信息寫入文本文件更加
簡單。你不必為了獲得所需的信息在各個表之間來回跳躍,每個表中的所有信息可以同時寫入
文件。隨著節點樹深度的增加,第一種方法將變得越來越繁瑣,而第二種方法具有很好的擴展
性。另外,使用D O M產生文檔能夠保證文檔是格式正規的。在我們的第一個例子中,假如我們
忘記了發票對象的結束標記—就無法解析X M L文檔。
5.3 使用DOM和XML的應用實例
下面我們將通過幾個實例說明如何在實際的應用中使用D O M。
5.3.1 簡單的客戶端實例
在本節中,我們將在客戶端使用J S c r i p t和D O M對象創建代表圖書的X M L文檔。由于D O M對
象是用于客戶端的,因此這個例子必須使用Internet Explorer 5運行。它允許用戶輸入有關圖書
的信息,書的作者和類別。它使用D O M及時產生X M L,并使用X S L樣式表顯示輸入的信息。應
用程序將提供圖5 - 7所示的用戶界面。
圖5-7
第5章文檔對象模型使用125 下載
當用戶通過按鈕添加新項目時,將看到它們以如圖5 - 8所示的形式顯示。
圖5-8
表單下方和頁面底部之間將出現圖書信息的H T M L表示和所創建的X M L(如圖5 - 8所示)。
該演示利用D O M通過程序創建X M L文檔。
利用D O M允許用戶修改頁面
我們的We b站點h t t p : / / w w w. w r o x . c o m提供了本書的可下載代碼,你可以從中獲得本節實例程
序的文件。
首先,我們來創建提供圖書數據輸入的H T M L頁面—B o o k C l i e n t . h t m。頁面中應該包含表
單,以便用戶輸入圖書的一般性信息:
中國航空網 www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(52)