報(bào)錯(cuò):XML頁(yè)無(wú)法顯示,下列標(biāo)記沒(méi)有被關(guān)閉解決方法

字號(hào):


    從數(shù)據(jù)庫(kù)讀出數(shù)據(jù),然后以XML的格式顯示數(shù)據(jù),但是提示hd,category,subsort等沒(méi)有關(guān)閉,可是我已經(jīng)關(guān)閉了呀,不知道具體是什么原因造成了這個(gè)問(wèn)題?
    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>"
    ‘連接數(shù)據(jù)庫(kù)的語(yǔ)句省略
    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()
    %>
    因?yàn)檩敵龅膬?nèi)容不能帶<>”‘&這幾個(gè)特殊字符,需要進(jìn)行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("字段名字"))
    另外,如果是文件編碼問(wèn)題,則可以將:
    Response.write “<?xml version=”"1.0″” encoding=”"UTF-8″” ?>”
    改成
    Response.write “<?xml version=”"1.0″” encoding=”"GB2312″” ?>”
    另外,在開始輸出之前,需要清空內(nèi)容:
    Response.Clear
    Response.write “<?xml version=”"1.0″” encoding=”"GB2312″” ?>”
    另外,寫成:
    Response.write vbCrlf & vbTab & vbTab & “<subsort>”
    更容易觀察.