利用XMLHTTP 从其他页面获取数据

2003-04-11 10:35:42  作者

我们在编写ASP代码的时候,大家都知道可以通过post或者get获得form表单的数据,那么我们如何直接获得其他页面上的数据呢?这就要借助xmlhttp协议了。xmlhttp是xmldom技术的一部分。

下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.codetoad.com/站点首页的代码以xml的形式完全获取,并且在页面中输出。

%26lt;%
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 "%26lt;BR%26gt;%26lt;BR%26gt;%26lt;BR%26gt;"
Response.Write "%26lt;xmp%26gt;"
Response.Write xml.responseText
Response.Write "%26lt;/xmp%26gt;"
Response.write "%26lt;BR%26gt;%26lt;BR%26gt;%26lt;BR%26gt;"
Response.write " Now here's how the page looks:%26lt;BR%26gt;%26lt;BR%26gt;"
Response.Write xml.responseText

Set xml = Nothing
%%26gt;

下面是另一个实例

%26lt;%
dim objHTTP , objXML , objXSL
set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.open "GET", "http://p.moreover.com/cgi-local/page?c=Pop%20music%20reviews%26amp;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: " %26amp; objXSL.parseError.reason %26amp; " URL:" %26amp; objXSL.url
end if

Set objHTTP = Nothing
Set objXML = Nothing
Set objXSL = Nothing
%%26gt;

style.xsl
%26lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"%26gt;
%26lt;xsl:template match="/"%26gt;

%26lt;html%26gt;
%26lt;head%26gt;
%26lt;TITLE%26gt;moreover...%26lt;/TITLE%26gt;
%26lt;/head%26gt;
%26lt;body BGCOLOR="ffffff"%26gt;


%26lt;DIV ALIGN="center"%26gt;
%26lt;TABLE BGCOLOR="ffffff" BORDER="0" CELLPADDING="4" CELLSPACING="0" WIDTH="100%"%26gt;

%26lt;xsl:for-each select="moreovernews/article"%26gt;

%26lt;TR VALIGN="middle"%26gt;
%26lt;TD ALIGN="left" BGCOLOR="ffffff"%26gt;


%26lt;xsl:attribute name="HREF"%26gt;
%26lt;xsl:value-of select="url"/%26gt;
%26lt;/xsl:attribute%26gt;
%26lt;xsl:attribute name="TARGET"%26gt;
_blank
%26lt;/xsl:attribute%26gt;

%26lt;xsl:value-of select="headline_text"/%26gt;





%26lt;xsl:attribute name="HREF"%26gt;
%26lt;xsl:value-of select="document_url"/%26gt;
%26lt;/xsl:attribute%26gt;
%26lt;xsl:attribute name="TARGET"%26gt;
_blank
%26lt;/xsl:attribute%26gt;

%26lt;xsl:value-of select="source"/%26gt;



%26lt;xsl:attribute name="HREF"%26gt;
%26lt;xsl:value-of select="access_registration"/%26gt;
%26lt;/xsl:attribute%26gt;
%26lt;xsl:attribute name="TARGET"%26gt;
_blank
%26lt;/xsl:attribute%26gt;

%26lt;xsl:value-of select="access_status"/%26gt;



%26lt;xsl:value-of select="harvest_time"/%26gt; GMT

%26lt;/TD%26gt;
%26lt;/TR%26gt;

%26lt;/xsl:for-each%26gt;


%26lt;/TABLE%26gt;
%26lt;/DIV%26gt;
%26lt;/body%26gt;
%26lt;/html%26gt;
%26lt;/xsl:template%26gt;
%26lt;/xsl:stylesheet%26gt;