利用XMLHTTP從其他頁面獲取數據
我們在編寫ASP代碼的時候,大家都知道可以通過post或者get獲得form表單的數據,那麼我們如何直接獲得其他頁面上的數據呢?這就要藉助xmlhttp協議了。 xmlhttp是xmldom技術的一部分。
下面的代碼就是一個很簡單的例子,我們利用xmlhttp技術,把http://www.xxxx.com/站點首頁的代碼以xml的形式完全獲取,並且在頁面中輸出。
<%
DimobjXMLHTTP,xml
Setxml=Server.CreateObject("Microsoft.XMLHTTP")
xml.Open"GET","http://www.codetoad.com/",False
'Pullthedatafromthewebpage
xml.Send
Response.write"Here'sthehtmlwenowhaveinourxmlobject"
Response.write"<BR><BR><BR>"
Response.Write"<xmp>"
Response.Writexml.responseText
Response.Write"</xmp>"
Response.write"<BR><BR><BR>"
Response.write"Nowhere'showthepagelooks:<BR><BR>"
Response.Writexml.responseText
Setxml=Nothing
%>
下面是另一個實例
<%
dimobjHTTP,objXML,objXSL
setobjHTTP=Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.open"GET","http://p.moreover.com/cgi-local/page?c=Pop%20music%20reviews&o=xml",false
objHTTP.send
setobjXML=objHTTP.responseXML
setobjXSL=Server.CreateObject("microsoft.xmldom")
objXSL.async=false
objXSL.load(Server.MapPath("style.xsl"))
if(objXSL.parseError.errorCode=0)then
Response.Write(objXML.transformnode(objXSL))
else
Response.Write"Error:"&objXSL.parseError.reason&"URL:"&objXSL.url
endif
SetobjHTTP=Nothing
SetobjXML=Nothing
SetobjXSL=Nothing
%>
style.xsl:
<xsl:stylesheetxmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:templatematch="/">
<html>
<head>
<TITLE>moreover...</TITLE>
</head>
<bodyBGCOLOR="ffffff">
<DIVALIGN="center">
<TABLEBGCOLOR="ffffff"BORDER="0"CELLPADDING="4"CELLSPACING="0"WIDTH="100%">
<xsl:for-eachselect="moreovernews/article">
<TRVALIGN="middle">
<TDALIGN="left"BGCOLOR="ffffff">
<xsl:attributename="HREF">
<xsl:value-ofselect="url"/>
</xsl:attribute>
<xsl:attributename="TARGET">
_blank
</xsl:attribute>
<xsl:value-ofselect="headline_text"/>