发新话题
打印

用xmlhttp请求xml格式的asp文件时不能返回值。

用xmlhttp请求xml格式的asp文件时不能返回值。

ttt.asp格式  
<?xml  version="1.0"  encoding="utf-8"?>  
<FansgivingDatabase>  
           <Booking  records="1">  
                       <FLD  fldid="1">AAA</FLD>  
                       <FLD  fldid="2">BBB</FLD>  
                       <FLD  fldid="3">CCC</FLD>  
                       <FLD  fldid="4">DDD</FLD>  
           </Booking>  
</FansgivingDatabase>  
load.asp  
'读取XML中数据,写入数据库  
Function  UpdateXMLToDatabase(LinkURL)  
           'on  error  resume  next  
           Dim  objXML,  loadResult  
           Dim  http  
           Set  http=Server.CreateObject("Microsoft.XMLHTTP")   
           http.Open  "GET",LinkURL,False  '"http://www.fansgiving.com/fansgiving/database/test.xml"  
           http.send   
           Set  objXML  =  Server.CreateObject("Msxml2.DOMDocument")  
           objXML.async  =  False  
           objXML.ValidateOnParse=False  
           objXML.load(http.ResponseXML)  
           If  objXML.ReadyState>2  Then  
                       Response.Write("文档已经准备就绪。状态:"&  objXML.ReadyState  &"<br>")  
                       Set  item1=objXML.getElementsByTagName("FansgivingDatabase")  
                       For  i=0  To  (item1.Length-1)  
                                   Set  Booking=item1.Item(i).getElementsByTagName("Booking")  
                                   Response.Write(Booking.Item(0).Text)  
                       Next  
           Else  
                       Response.Write("文档还未准备就绪。状态:"&  objXML.ReadyState  &"<br>")  
           End  If  
           Set  http=Nothing  
           Set  objXML=Nothing  
end  function  
            
call  UpdateXMLToDatabase("http://localhost/database/ttt.asp")  
response.write("<br>OK")  
response.end()  
如果用ttt.xml可以读取  
结果如下:  
文档已经准备就绪。状态:4  
AAA  BBB  CCC  DDD  
OK  

但是用ttt.asp就读不出来了。  
晕头转向中  
结果如下:  
文档已经准备就绪。状态:4  
OK  


哪位大哥指点迷津,多谢了

TOP

不应该有这种问题  
试着给linkURL加一个随机参数  
linkURL  &  "?tmp="  &  Rnd

TOP

我测试过了有这样的问题。  
我认为xml是以utf-8编码的,而请求asp时,则是以默认中文编码的,而ResponseXML是以utf-8格式返回数据的。由于编码的各种转换所以产生了问题。

TOP

不能简单地将ttt.xml改名为ttt.asp就可以了。应该改成这样:  

ttt.asp  
<%@LANGUAGE="VBSCRIPT"  CODEPAGE="65001"%>  
<%  
Response.ContentType="text/xml"  
%>  
<?xml  version="1.0"  encoding="utf-8"?>  
<FansgivingDatabase>  
<Booking  records="1">  
<FLD  fldid="1">AAA</FLD>  
<FLD  fldid="2">BBB</FLD>  
<FLD  fldid="3">CCC</FLD>  
<FLD  fldid="4">DDD</FLD>  
</Booking>  
</FansgivingDatabase>  

在我这儿测试OK了,第一行将文档输出编码输出为utf-8,第二行设置输出xml格式文档

TOP

发新话题