利用XMLHTTP从其他页面获取数据
我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了。xmlhttp是xmldom技术的一部分。
下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.xxxx.com/站点首页的代码以xml的形式完全获取,并且在页面中输出。
- <%
- Dim objXMLHTTP, xml
- Set xml = Server.CreateObject("Microsoft.XMLHTTP")
- xml.Open "GET", "http://www.codetoad.com/", False
- ' Pull the data from the web page
- xml.Send
- Response.write "Here's the html we now have in our xml object"
- Response.write "<BR><BR><BR>"
- Response.Write "<xmp>"
- Response.Write xml.responseText
- Response.Write "</xmp>"
- Response.write "<BR><BR><BR>"
- Response.write " Now here's how the page looks:<BR><BR>"
- Response.Write xml.responseText
- Set xml = Nothing
- %>
- 下面是另一个实例
- <%
- dim objHTTP , objXML , objXSL
- set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
- objHTTP.open "GET", "http://p.moreover.com/cgi-local/page?c=Pop%20music%20reviews&o=xml", false
- objHTTP.send
- set objXML = objHTTP.responseXML
- set objXSL=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
- end if
- Set objHTTP = Nothing
- Set objXML = Nothing
- Set objXSL = Nothing
- %>
- style.xsl:
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
- <xsl:template match="/">
- <html>
- <head>
- <TITLE>moreover...</TITLE>
- </head>
- <body BGCOLOR="ffffff">
- <DIV ALIGN="center">
- <TABLE BGCOLOR="ffffff" BORDER="0" CELLPADDING="4" CELLSPACING="0" WIDTH="100%">
- <xsl:for-each select="moreovernews/article">
- <TR VALIGN="middle">
- <TD ALIGN="left" BGCOLOR="ffffff">
- <xsl:attribute name="HREF">
- <xsl:value-of select="url"/>
- </xsl:attribute>
- <xsl:attribute name="TARGET">
- _blank
- </xsl:attribute>
- <xsl:value-of select="headline_text"/>
- <xsl:attribute name="HREF">
- <xsl:value-of select="document_url"/>
- </xsl:attribute>
- <xsl:attribute name="TARGET">
- _blank
- </xsl:attribute>
- <xsl:value-of select="source"/>
- <xsl:attribute name="HREF">
- <xsl:value-of select="access_registration"/>
- </xsl:attribute>
- <xsl:attribute name="TARGET">
- _blank
- </xsl:attribute>
- <xsl:value-of select="access_status"/>
- <xsl:value-of select="harvest_time"/> GMT
- </TD>
- </TR>
- </xsl:for-each>
- </TABLE>
- </DIV>
- </body>
- </html>
- </xsl:template>
- </xsl:stylesheet>