ASP XML編程objXML.async = False第1/2頁

來源:互聯網
上載者:User

從技術上來說,在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)
set source = nothing
%>
</BODY>
</HTML>
contacts.xml
<?xml version="1.0" ?>
<CONTACT_INFO>
<CONTACT>
<NAME>JOHN</NAME>
<PHONE>111-1111-111</PHONE>
</CONTACT>
<CONTACT>
<NAME>SMITH</NAME>
<PHONE>222-2222-222</PHONE>
</CONTACT>
<CONTACT>
<NAME>MIKE</NAME>
<PHONE>333-3333-333</PHONE>
</CONTACT>
</CONTACT_INFO>
經XSL格式化的XML資料
styleContact.asp
<HTML>
<BODY>
<%
sourceFile = server.mapPath("contact.xml")
styleFile = server.mapPath("contact.xsl")
set source = Server.CreateObject("Microsoft.XMLDOM")
source.async = False
source.load(sourceFile)
set style = Server.CreateObject("Microsoft.XMLDOM")
style.async = False
style.load(styleFile)
response.write(source.transformNode(style))
%>
</BODY>
</HTML>
contact.xml
<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="contact.xsl" ?>
<CONTACT_INFO>
<CONTACT>
<NAME>ZHOU.ZF</NAME>
<PHONE>11111111111</PHONE>
</CONTACT>
<CONTACT>
<NAME>LISTEN</NAME>
<PHONE>22222222222</PHONE>
</CONTACT>
<CONTACT>
<NAME>BUBU</NAME>
<PHONE>33333333333</PHONE>
</CONTACT>
</CONTACT_INFO>
contact.xsl
<?xml version="1.0" ?>
<xsl:template xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<HTML>
<BODY>
<xsl:for-each select="CONTACT_INFO/CONTACT">
<DIV>
<xsl:value-of select="NAME"/>
</DIV>
</xsl:for-each>
</BODY>
</HTML>
</xsl:template>
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.