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

  从数据库读出数据,然后以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>”

  更容易观察.