ITPub博客

首页 > 应用开发 > IT综合 > 当XMLHTTP返回的XML数据流中没有数据时怎么样进行异常处理?

当XMLHTTP返回的XML数据流中没有数据时怎么样进行异常处理?

原创 IT综合 作者:sdvingo 时间:2007-03-29 00:41:27 0 删除 编辑

这是我写的一个login.asp文件。调用一个XML数据接口获取XML数据流。
"http://www.w3.org/TR/html4/loose.dtd">



Untitled Document

helloworld

<%
Set XMLHTTP=server.CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open"Get",

"http://202.202.7.200/wingsoft/common/cwWsData.jsp?funcno=cdjw&pass=Sisj3ixo&unino="&request.form("username")&"&year=2004",Fa

lse
XMLHTTP.send("")
banner = XMLHTTP.responsetext

response.write(banner&"
")

set xml=server.createobject("microsoft.xmldom")
xml.async=false
xml.loadXML(banner)

if xml.parseerror.errorcode = 0 then
set root=xml.documentElement
set node=root.childNodes.item(0)
unino=node.childnodes.item(0).text
name=node.childnodes.item(1).text
amt=node.childnodes.item(2).text
tag=node.childnodes.item(3).text


if cint(amt) > 0 or tag = "T" then
response.write(amt&"
")
response.write(tag&"
")
end if
response.write(unino&"
")
response.write(name&"
")

end if

%>




这是正常情况下返回的数据流

-
-
0120011114
韦璎芬
0
F



这是没有相应数据时返回的数据流



当没有相应数据时运行程序时报出下面的错误
Microsoft VBScript 运行时错误 错误 '800a01a8'

缺少对象

/login.asp,行24
/**************************************************/

1.使用responseXML就可以返回DOM对象
eg: set xml=XMLHTTP.responseXML

2.加个判断:
set root=xml.documentElement
if(root.childNodes.length>0) '此处也可以用root.hasChildNods方法判断~

else
'无数据
end if

/*************************************************/

我试过将返回用responsexml但是在设置
xml = XMLHTTP.responsexml时,
网页报错,说不支持responsexml对象。
用xml.load()或者xml.loadxml()方法来调用responsexml都报相同的错误。

在其返回responsetext里面xml数据流里面数据为空时有没有办法进行判断啊。
/************************************************/

我现在是无法用XMLHTTP返回的responsexml用XMLDOM对象来调用,
只能用xml.loadxml(XMLHTTP.responsetext)这样才成功。

但是当XMLHTTP.responsetext的数据为
时就会报错。
我想问一下,什么时候能用responsetext,什么时候能用responsexml,两者有什么区别。
再就是能不能将responsexml的调用方式写详细点。谢谢

/***************************************************/

cwWsData.jsp页面输出xml数据时,一定要指定输出的类型为:text/xml才能使用responsexml


使用responseText时:
set xml=server.createobject("microsoft.xmldom")
xml.async=false
xml.loadXML xmlhttp.responsetext

if xml.parseerror.errorcode = 0 then
set root=xml.documentElement
if(root.hasChildNodes) then
response.Write "有数据"
else
response.Write "无数据"
end if
else
Response.Write "错误:" + xml.parseerror.reason
end if

/*******************************************************/

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/443058/viewspace-907379/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    74
  • 访问量
    146921