ASP XML編程objXML.async = False第1/2頁
2024-05-04 11:00:33
供稿:網友
從技術上來說,在ASP環境中,讀入并管理XML文本的主要方法有三種:
創建MSXML對象,并且將XML文檔載入DOM;
使用服務器端嵌入(Server-Side Include,SSI);
就如同訪問其他文本文件一樣,使用FileSystemObject來訪問XML文檔;
第四種方法是在客戶端創建內置的數據島,有關的內容以后講解。
一、使用DOM
為了在ASP代碼中使用DOM,需要創建一個Microsoft XML分析器的實例,它像任何別的COM組件一樣被實例化,在頁面的開始處頊要增加幾行標準代碼。這些代碼創建一個分析器實例,加載XML文檔至DOM,并且將根元素(即文檔元素)設置為當前節點。
‘Instatiate the XML Processor
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
Load the XML Document
objXML.load(Server.MapPath("mydata.xml")
Set the Document Element
Set objRootElement = objXML.documentElement
在XML文檔被加載之前,還需要執行第四步,即設置validateOnParse屬性為True,這可確保被加載的文檔為有效的XML文檔。這可避免后面遇到的各種麻煩:
Instatiate the XML Processor
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
The processos should validate the document
objXML.validateOnParse = True
Load the XML Document
objXML.load(Server.MapPath("mydata.xml")
Set the Document Element
Set objRootElement = objXML.documentElement
最后,還有一個可選步驟,它也是出現在加載之前。它要求同步加載文件:
objXML.async = false
這說時加載并驗證一個相當大的文件需要占用一些時間。另一種替換方案是忽略這一步,允許非同步加載,這是缺省情況,一旦完成這些初始化步驟,XML文檔就被加載,并且做好了被處理的準備。DOM所有重要的功能都是可配置的。
當然,就如同任何COM對象一樣,在使用完之后,請記住必須銷毀它:
Set objXML = nothing
二、服務器端嵌入
服務器端嵌入可用于將XML文檔代碼插入ASP頁面。
三、用ASP代碼處理XML的示例
<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim sourceFile,source,rootElement,HTMLCode
sourceFile = Request.ServerVariables("APPL_PHYSICAL_PATH") & "xml/contacts.xml"
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = false
source.load sourceFile
set rootElement = source.documentElement
HTMLCode = HTMLCode & "<font size=4 face=verdana>"
HTMLCode = HTMLCode & rootElement.childNodes(0).text
HTMLCode = HTMLCode & "</font><p></p><font size=3 face=verdana><I>"
HTMLCode = HTMLCode & rootElement.childNodes(0).text
HTMLCode = HTMLCode & "</I></font><p></p><font size=3 face=verdana>"
HTMLCode = HTMLCode & rootElement.childNodes(0).text
HTMLCode = HTMLCode & "</font><p></p>"
response.write(HTMLCode)