问一个问题:关于XmlHttp!!

斯赛 2003-11-19 12:22:12
近日做一了个关于XmLHttp取远端网页的程序!

但是有些空间显示不出来结果,有些可以!

不知道不显示结果的空间限制了什么功能,各位可以帮帮我吗?


可以显示结果的
http://asp.169163.net/user-371267/ShowNcWeather.asp

无法显示结果的:
http://www.tyemyl.com/qsh/ShowNcWeather.asp

源代码如下:
-----------------------------------------------
-----------------------------------------------

<%
'Server.ScriptTimeOut=3
dim temp1,temp2,temp3
call main("http://cn.weather.yahoo.com/CHXX/CHXX0097/index_c.html")
'主处理文件
function main(url)
on error resume next
if isNull(url) or url="0" then ShowError()
dim w1,w2,w3,w4,w5
'分别是今天天气,最高温度,最低温度,风向,风力
'取得网址
w1=getHTTPPage(url)

if w1 = "" or len(w1) < 500 then ShowError()

temp1=instr(w1,"<br><br><span class=sbody>")
temp2=instr(w1,"风力:</td><td class=sbody>")+35
if temp1=0 then showError()
temp1=temp1+26
'取出中间值
w2=mid(w1,temp1,temp2-temp1)
w1=mid(w1,temp1,20)
Temp3=instr(w1,"<")
if Temp3>0 then
w1=mid(w1,1,temp3-1)
end if
'开始取最高温度
Temp1=instr(w2,"最高:")
Temp2=instr(w2,"风力:</td><td class=sbody>")+35
if temp1=0 then showError()
temp1=temp1+36
w3=mid(w2,temp1,temp2-temp1)
w2=mid(w2,temp1,15)
Temp3=instr(w2,"<")
if Temp3>0 then
w2=mid(w2,1,temp3-1)
end if
'开始取最低温度
Temp1=instr(w3,"最低:")
Temp2=instr(w3,"风力:</td><td class=sbody>")+35
if Temp1=0 then showError()
Temp1=Temp1+36
W4=mid(w3,Temp1,Temp2-Temp1)
W3=mid(w3,Temp1,15)
Temp3=instr(W3,"<")
if Temp3>0 then
w3=mid(w3,1,Temp3-1)
end if
'开始取风向
Temp1=instr(w4,"风向:</td><td class=sbody>")
Temp2=instr(w4,"风力:</td><td class=sbody>")+35
if Temp1=0 then showError()
Temp1=Temp1+24
W5=mid(w4,Temp1,Temp2-Temp1)
w4=mid(w4,Temp1,30)
Temp3=instr(w4,"<")
if Temp3>0 then
w4=mid(w4,1,temp3-1)
end if
'开始取风力
Temp1=instr(w5,"风力:</td><td class=sbody>")
if Temp1=0 then showError()
Temp1=Temp1+24
w5=mid(w5,Temp1,30)
Temp3=instr(w5,"<")
if Temp3>0 then
W5=mid(w5,1,Temp3-1)
end if

response.write(w1&",最高温度:"&w2&",最低温度:"&w3&",风向:"&w4&", 风力:"&w5)


end function
'取得网页文件代码函数
function getHTTPPage(url)
dim http
set http=server.createobject("MSXML2.XMLHTTP")
Http.open "GET",url,false
Http.send()
if Http.readystate<>4 then
exit function
end if
getHTTPPage=bytes2BSTR(Http.responseBody)
set http=nothing
if err.number<>0 then err.Clear
end function


'字节转化成字符串函数
Function bytes2BSTR(vIn)
dim strReturn
dim i,ThisCharCode,NextCharCode
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function

'错误提示函数
function ShowError()
Response.write "很抱歉:因系统错误,无法通知天气情况!今天天气情况请访问 <a href=""http://cn.weather.yahoo.com/CHXX/CHXX0097/index_c.html"" target=_blank>这里</a>"
Response.end
end Function %>
...全文
92 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
斯赛 2003-11-19
  • 打赏
  • 举报
回复
真的可以呢!


谢谢你啊!
不过我想知道这是为什么呢?
liangzhg 2003-11-19
  • 打赏
  • 举报
回复
将set http=server.createobject("MSXML2.XMLHTTP")
换成set http=server.createobject("Microsoft.XMLHTTP")试一下,不行那就试服务器将相应的文件删除了。
XML越来越热,关于XML的基础教程网络上也随处可见。可是一大堆的概念和术语往往让人望而生畏,很多朋友我:XML到底有什么用,我们是否需要学习它?我想就我个人学习过程的心得和经验,写一篇比较全面的介绍文章。首先有两点是需要肯定的:   第一:XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解,等待只会让你失去机会;   第二:新知识肯定会有很多新概念,尝试理解和接受,您才可能提高。不要害怕和逃避,毕竟我们还年轻。   本文共分五大部分。分别是XML快速入门,XML的概念,XML的术语,XML的实现,XML的实例分析。最后附录介绍了XML的相关资源。作者站在普通网页设计人员的角度,用平实生动的语言,向您讲述XML的方方面面,帮助你拨开XML的神秘面纱,快速步入XML的新领域。 • 第一章:XML快速入门 • 一. 什么是XML? • 二. XML是新概念吗? • 三. 使用XML有什么好处? • 四. XML很难学吗? • 五. XML和HTML的区别 • 六. XML的严格格式 • 七. 关于XML的更多 • 第二章:XML概念 • 一. 扩展性 • 二. 标识 • 三. 语言 • 四. 结构化 • 五. Meta数据 • 六. 显示 • 七. DOM • 第三章:XML的术语 • 导言 • 一.XML文档的有关术语 • 二.DTD的有关术语 • 第四章:XML的语法 • 一.XML语法规则 • 二.元素的语法 • 三.注释的语法 • 四.CDATA的语法 • 五.Namespaces的语法 • 六.entity的语法 • 七.DTD的语法 • 第五章:XML实例解释 • 一.定义新标识 • 二.建立XML文档 • 三.建立相应的HTML文件 • 第六章:XML相关资源 五. XML和HTML的区别 XML和HTML都来自于SGML,它们都含有标记,有着相似的语法,HTML和XML的最大区别在于:HTML是一个定型的标记语言,它用固有的标记来描述,显示网页内容。比如表示首行标题,有固定的尺寸。相对的,XML则没有固定的标记,XML不能描述网页具体的外观,内容,它只是描述内容的数据形式和结构。 这是一个质的区别:网页将数据和显示混在一起,而XML则将数据和显示分开来。 我们看上面的例子,在myfile.htm中,我们只关心页面的显示方式,我们可以设计不同的界面,用不同的方式来排版页面,但数据是储存在myfile.xml中,不需要任何改变。 (如果你是程序员,你会惊讶的发现,这与模块化面向对象编程的思想极其相似!其实网页何尝不是一种程序呢?) 正是这种区别使得XML在网络应用和信息共享上方便,高效,可扩展。所以我们相信,XML做为一种先进的数据处理方法,将使网络跨越到一个新的境界。 六. XML的严格格式 吸取HTML松散格式带来的经验教训,XML一开始就坚持实行"良好的格式"。 我们先看HTML的一些语句,这些语句在HTML中随处可见: 1. sample 2.sample 3.sample 4.samplar 在XML文档中,上述几种语句的语法都是错误的。因为: 1.所有的标记都必须要有一个相应的结束标记; 2.所有的XML标记都必须合理嵌套; 3.所有XML标记都区分大小写; 4.所有标记的属性必须用""括起来; 所以上列语句在XML中正确的写法是 1. sample 2.sample 3.sample 4.samplar   另外,XML标记必须遵循下面的命名规则: 1.名字中可以包含字母、数字以及其它字母; 2.名字不能以数字或"_" (下划线) 开头; 3.名字不能以字母 xml (或 XMLXml ..) 开头; 4.名字中不能包含空格。 在XML文档中任何的差错,都会得到同一个结果:网页不能被显示。各浏览器开发商已经达成协议,对XML实行严格而挑剔的解析,任何细小的错误都会被报告。你可以将上面的myfile.xml修改一下,比如将改为,然后用IE5直接打开myfile.xml,会得到一个出错信息页面: XML轻松学习手册 ajie

8,909

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧