XML 在 ASP 環境下的應用(轉)
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:
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在Weblogic環境下的servlet中實現應用級身份認證 (轉)WebServlet
- ASP環境下輕鬆實現報表的列印 (轉)
- 在Ubuntu下搭建ASP.NET 5開發環境UbuntuASP.NET開發環境
- 在linux下搭建wiki環境【轉】Linux
- RAC環境下的SEQUENCE對應用的影響
- 在非k8s 環境下 的應用 使用 Dapr Sidekick for .NETK8SIDE
- 在Java2環境中應用IP地址封裝物件 (轉)Java封裝物件
- 雲端計算環境下的BGP協議應用協議
- 在Linux環境下執行DOS命令(轉)Linux
- ClearCase遠端客戶端軟體在網路環境下的配置應用客戶端
- Haskell 在 macOS 下的環境搭建HaskellMac
- TiDB 在餓了麼歸檔環境的應用TiDB
- Docker在PHP專案開發環境中的應用DockerPHP開發環境
- Linux 應用程式處理當前執行環境的環境變數(轉)Linux變數
- 分散式儲存在雲環境下的應用和部署分散式
- DB2 HADR環境下,應用的改變DB2
- linux環境下的undelete(轉)Linuxdelete
- 在Linux環境下玩PlayStation模擬器(轉)Linux
- 在防火牆環境下DNS的安裝與設定(轉)防火牆DNS
- (轉)Oracle DBA在新環境下必須瞭解的事情Oracle
- Oracle DBA在新環境下必須瞭解的事情(轉)Oracle
- Asp.Net在多執行緒環境下的狀態儲存問題ASP.NET執行緒
- 物聯網在環境保護行業中的應用行業
- XML SOAP應用簡介 (轉)XML
- UNIX下的PHP環境配置,+apache (轉)PHPApache
- 在.NET(正式版)環境下傳送郵件 (轉)
- 在linux環境下啟動時開啟numlock(轉)Linux
- 【轉】 Windows下LAMP環境搭建WindowsLAMP
- 在nodejs環境裡使用瀏覽器環境下的document物件NodeJS瀏覽器物件
- 論Asp與XML的關係(轉)XML
- ASP中DLL的除錯環境配置全攻略 (轉)除錯
- HMMer在Windows環境下的安裝HMMWindows
- 在域環境下對賬戶的操作
- VLC在ubuntu環境下編譯編譯
- 不要忽視BI的應用環境
- 應用SQLServer For XML 生成XML避免在C# 拼字串SQLServerXMLC#字串
- Java指令重排序在多執行緒環境下的應對策略Java排序執行緒
- Windows環境下的Nginx環境搭建WindowsNginx