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

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

  下面的代码就是一个很简单的例子,我们利用xmlhttp技术,把http://www.codetoad.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 music reviews&;amp;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: " &;amp; objXSL.parseError.reason &;amp; " URL:" &;amp; 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>

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [XML] 的这些文章也感兴趣:

在XSL里执行类似for(i=0;i<n;i )的循环
亲密接触xml(1)---XML简介
XMLHTTP下载远程数据输出到浏览器
用VB.NET和XPath简化XML导航
用XmlSerializer串行化(序列化)ArrayList数组对象与反序列化
利用xslt对xml进行缩进格式化处理
XML的十年
亲密接触xml(9)XML在Netscape和Explorer中
XML介绍系列(4)
利用ASP从远程服务器上接收XML数据