XML 在 ASP 環境下的應用(轉)

amyz發表於2007-08-12
XML 在 ASP 環境下的應用(轉)[@more@]

  XML被譽為未來Web的生命所在。本文介紹如何在伺服器端利用新的XML文件物件模型(DOM),透過ASP程式解析和應用XML資料。

  一、文件物件模型

  在伺服器上解析和應用XML的能力為開發者開啟了一個全新的世界。隨著XML應用的日益廣泛,在伺服器上處理XML也變得更加重要。本文示範ASP應用在伺服器端的XML文件處理過程,使用的XML例子是一個新聞文件。我們將介紹如何編寫一個顯示新聞文件日期和新聞數量的簡單ASP頁面,以及如何在ASP頁面中顯示新聞標題和相應的URL。

  文件物件模型即Document Object Model,簡稱DOM。IE 5.0的XML文件物件模型提供了對W3C DOM核心規範(Level 1)所描述的程式設計介面的完整支援,同時它還支援一系列XML相關技術,比如XSL、XSL模式匹配、名稱空間、資料型別等。DOM是XML解析器所匯出的最基本的文件模型,它將XML文件描述為一個很容易導航和使用的樹形結構。

  W3C的DOM核心規範定義了兩組DOM程式設計介面。第一組介面是編寫處理和使用XML文件的應用時所必需的,第二組介面輔助開發者更輕鬆地處理XML文件。提供第二組介面只是為了方便,對於XML應用來說它們並不是必需的。

  在ASP應用中,要在伺服器上應用DOM是相當簡單的,但伺服器上必須安裝IE 5.0,這是因為DOM的許多支援元件都是由IE提供的。安裝好IE之後,只要在ASP應用中用類似下面的程式碼就可以建立DOM物件:

  二、在伺服器上處理XML(1)

  在伺服器上建立了DOM物件之後,我們既可以自己構造新的XML文件,也可以裝載一個現有的文件。如果是裝載現有文件,還可以選擇是讀取XML文字字串,還是開啟XML文件並裝載其內容。在本文的例子中,我們假定伺服器上已經有了一個最近新聞的XML文件mostRecentScriptingNews.xml。在裝載XML文件之前,我們應該把DOM物件的async屬性設定成“false”,這是告訴DOM物件裝載XML文件不是非同步進行。這一點非常重要,因為讀入XML文件之後我們將立即開始使用它,如果此時文件還沒有全部裝載完畢,試圖訪問它就會引發錯誤。

  下面是我們裝載的XML文件mostRecentScriptingNews.xml:

版權所有1.0Wed, 03 Mar 1999 08:00:00 GMTThu, 04 Mar 1999 03:37:03 GMT
Linux汽車立體聲系統汽車立體聲系統...

  據News.com,HP將以租用方式提供儲存和計算服務。摘自News.com

  DOM模型的parseError物件包含了最後出現的解析錯誤資訊,這個錯誤物件對於ASP頁面除錯和錯誤控制是很有用的。文件裝載完成後,在繼續其他操作之前檢查parseError物件看看是否存在錯誤是一種好習慣: 0 Then&single; 處理錯誤End If%>

  parseError物件提供了有關錯誤的豐富而寶貴的資訊:

  注意在上面的程式碼中我們以“*”作為getElementsByTagName的引數,此時getElementsByTagName將返回文件中所有元素(或節點)的一個列表。由於我們已經有了DTD,可以直接從DTD獲知pubDate的正確位置,但象上例所做的那樣透過迴圈遍歷文件也是一種高效的方法,因為節點列表是一個集合。

  現在我們得到了新聞的釋出日期,下面我們來看看如何計算文件中的新聞數量。從文件的DTD定義我們知道新聞存放在item節點,文件中的每個item節點對應一則新聞。顯然,我們可以使用類似上例的另一個迴圈,在迴圈內每次遇到item節點就把計數器加1。不過我們還有一種更好的提取該資訊的方法,這要用到DOM提供的另外一個方法。

  象上例一樣,我們所要做的是建立一個包含全部item節點的列表物件,然後透過length屬性得到節點列表物件中的節點數量,從而也就得到了文件中新聞的數量:

  很多時候我們要在ASP頁面中顯示來自XML文件的一些資訊。下面這個例子顯示瞭如何透過遍歷新聞節點列表,在ASP頁面中顯示新聞及其URL。 0 Then&single; 處理錯誤End IfSet objLst = objXML.getElementsByTagName("item")noOfHeadlines = objLst.length%>

新聞

" & objHdl.childNodes(0).text & _"
")Next%>

  結束語:只要對XML文件的結構有一個基本瞭解,再利用DOM的強大功能,我們就可以方便地在ASP應用伺服器端解析XML文件,從解析結果中選擇合適的內容傳送給客戶端。這是一種瀏覽器無關的方法,適用於幾乎所有的Web瀏覽器。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-950343/,如需轉載,請註明出處,否則將追究法律責任。

相關文章