系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 网络编程 > XML/RSS > 详细页面

报错:XML页无法显示,下列标记没有被关闭解决方法

时间:2020-02-04来源:系统城作者:电脑系统城

从数据库读出数据,然后以XML的格式显示数据,但是提示hd,category,subsort等没有关闭,可是我已经关闭了呀,不知道具体是什么原因造成了这个问题? 
VB code: 
复制代码 代码如下:
<% 
response.ContentType= "text/xml" 
Response.CharSet = "GB2312" 
Response.Expires = 0 
Response.write "<?xml version=""1.0"" encoding=""UTF-8"" ?>" 
Response.write vbcrlf&"<hd>" 
Response.write vbcrlf&vbTab&"<category>" 
Response.write vbcrlf&vbTab&vbTab&"<subsort>" 
‘连接数据库的语句省略 
do while not rs.eof 
response.write vbcrlf&vbTab&vbTab&vbTab&"<item>" 
response.write vbcrlf&vbTab&vbTab&vbTab&vbTab&"<id>"&rs("id")&"</id>" 
response.write vbcrlf&vbTab&vbTab&vbTab&"</item>" 
loop 
rs.close() 
set rs=nothing 
response.write vbcrlf&vbTab&vbTab&"</subsort>" 
response.write vbcrlf&vbTab&"</category>" 
response.write vbcrlf&"</hd>" 
Response.End() 
%> 

因为输出的内容不能带<>”‘&这几个特殊字符,需要进行XmlEncode编码,如下的代码详情: 
VBScript code: 
复制代码 代码如下:
Function XMLEncode(var) 
On Error Resume Next 
Dim strTmp 
If (IsNull(var)) Then 
var = "" 
End If 
If (VarType(var) = 11) Then 
If (var) Then 
strTmp = "1" 
Else 
strTmp = "0" 
End If 
Else 
strTmp = CStr(var) 
strTmp = Replace(strTmp, "&", "&") 
strTmp = Replace(strTmp, "<", "<") 
strTmp = Replace(strTmp, ">", ">") 
strTmp = Replace(strTmp, """", """) 
strTmp = Replace(strTmp, "'", "'") 
End If 
XMLEncode = strTmp 
End Function 
Function XMLDecode(str) 
Dim temp 
temp=replace(str,"&","&") 
temp=replace(temp,"<","<") 
temp=replace(temp,">",">") 
temp=replace(temp,""","""") 
temp=replace(temp,"'","'") 
XMLDecode = temp 
End Function 
Response.Write XmlEndode(rs("字段名字")) 

另外,如果是文件编码问题,则可以将: 
Response.write “<?xml version=”"1.0″” encoding=”"UTF-8″” ?>” 
改成 
Response.write “<?xml version=”"1.0″” encoding=”"GB2312″” ?>” 
另外,在开始输出之前,需要清空内容: 
Response.Clear 
Response.write “<?xml version=”"1.0″” encoding=”"GB2312″” ?>” 
另外,写成: 
Response.write vbCrlf & vbTab & vbTab & “<subsort>” 
更容易观察.
分享到:

相关信息

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载