日期:2014-05-17  浏览次数:20884 次

关于用Msxml2.DOMDocument读取XML的问题,诚邀高手进来解答
ResponseXML.ASP的文件代码如下:
<%
dim   xmlDoc
set   xmlDoc   =   Server.CreateObject( "Msxml2.DOMDocument ")
xmlDoc.async   =   false
xmlDoc.validateOnParse=false
xmlDoc.setProperty   "ServerHTTPRequest ",   true
href   =   Request( "f ")
xmlDoc.load(href)
xmlStr   =   xmlDoc.xml
Response.write   xmlStr
%>
这段代码很奇怪如果我访问的数据源是的扩展名是*.XML   就很正常,但是如果扩展名是*.ASP   的文件就不行。
例如   XML的数据源是   http://192.168.1.18/test.XML
test.xml   的数据是
<?xml   version= "1.0 "   encoding= "gb2312 "?>
<List>
<sales   object= "pen "   style= "red "/>
</List>
这样的话ResponseXML.ASP   可以将他显示出来   但是如果用动态的ASP访问数据库动态显示成XML格式的数据却无法被显示
例如   XML的数据源是   http://192.168.1.18/test.ASP
代码如下
<%Response.ContentType   =   "text/xml "%>
<?xml   version= "1.0 "   encoding= "gb2312 "?>
<%
Set   Rs   =   Server.CreateObject( "ADODB.RecordSet ")
Rs.ActiveConnection   =   Conn_odds
SQL   =   "SELECT   *   FROM   sales "
Rs.Open   SQL,,1,2
Rec   =   Rs.RecordCount
Response.Write( " <List> ")
if   Rec> 0   then
do   while   not(rs.eof)
                                  response.write   " <sales   object= ' "&rs.fields(0)& " '   style= ' "&rs.fields(1)& " '/>
rs.movenext
loop
end   if
Response.Write( " </List> ")
Rs.close()
Set   rs   =   nothing
Set   Conn_Odds   =   nothing
%>
这样的话ResponseXML.ASP   确是无法将他解析出来
请问这是为什么呢?

------解决方案--------------------
test.ASP第一行加上
<%@ LANGUAGE= "VBSCRIPT " CODEPAGE= "65001 "%>

再把test.asp 文件格式另存为 UTF-8编码