none
msxml 缺少对象: 'XMLDom.documentElement' RRS feed

  • 问题

  • 各位仁兄:
          求救.......
          在windows2000 上运行asp程序正常,但在windows2008上运行出错,提示“缺少对象: 'XMLDom.documentElement' ”

         

    2009年7月15日 6:43

答案

全部回复

  • 你好,错误提示已经说明了 可能是你取得的xml错误了 有可能是你没有取得xml,即返回的xml为空 导致不存在根节点
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年7月15日 7:00
    版主
  • 非常感谢,但是我是同样的一段程序,在另外一台windows2000服务器上就可以运行,但在windows2008上就无法运行
    2009年7月15日 7:14
  • 在使用之前先判断XMLDom是否成功加载了
    【孟子E章】
    2009年7月15日 9:10
    版主
  • 谢谢,
     你说的没错,取得的xml为空,但是我这段程序是正确的,在windows server2000上运行成功,  我在想Msxml2在windows server2008 上是不是不支持?
    2009年7月17日 6:13
  • winteroo,你好

    你能把这段代码贴出来吗? 如果你运行的是ASP 请确认Windows 2008 的IIS7 上已经安装了 ASP 模块。
    Microsoft Online Community Support
    2009年7月22日 2:44
    版主
  • 谢谢指导,但是我在windows2008上运行简单的asp程序是可以正常执行的,以下是我有问题的这支程序及它调用的另一支程序
    第一支程序代码:
    <html>
    <head>
    <META name=VI60_defaultClientScript content=VBScript>
    <title></title>
    <link rel="stylesheet" href="/cbnet/include/default.css" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript>
    <!--
    Sub window_onload()
    End Sub
    Sub selectarea_onchange
    dim strxml
      strxml="<?xml version=""1.0"" encoding=""gb2312"">"
         strxml="<root>"
         strxml=strxml & "<area value='"
         strxml=strxml & trim(frmbody.selectarea.value)
         strxml=strxml & "'/>"
         strxml=strxml & "</root>"
    dim oReq
    set oReq = CreateObject("MSXML2.XMLHTTP")
    oReq.open "POST","selcomp.asp",false
    oReq.send strxml
    Dim xmldoc
    Set xmldoc=xmlTemp1.xmlDocument
    xmldoc.async = False
    xmldoc.load(oReq.responsexml)
    Set myErr = xmlDoc.parseError
     If (myErr.errorCode <> 0) Then
          MsgBox ("You have error " & myErr.reason)
      End If          
       frmbody.selectstore.options.length = 1
       for i=0 to xmlDoc.documentElement.childNodes.length-1
              dim oOption
              set oOption=document.createElement("OPTION")
              oOption.value=xmldoc.documentElement.childNodes.item(i).attributes.getNamedItem("value").value
              oOption.text=xmldoc.documentElement.childNodes.item(i).attributes.getNamedItem("name").value
              frmbody.selectstore.add(oOption)
       next
    End Sub
    </head>
    <body bgcolor="#FFFFFF">
    <XML ID="xmlTemp1">
    </XML>
    <form name="frmbody" method="POST">
      <table width="100%" border="0" style="font-size:11pt;">
        <tr>
          <td align="center">
                    <span class="style1">TEST</span><br>
     </td>
    </tr>
     <tr>
          <td>
            <hr noshade>
          </td>
     </tr>
    <tr>
    <td align="center">
    <span align="center">区域<font size="2"></font>:
                  <span align="center">
                  <select id=selectarea name=selectarea >
                    <option value="#" selected>无</option>
                    <option value="1" >上海</option>
                    <option value="2" >广州</option>
                    <option value="3" >北京</option>
                  </select>        
                  <select id=selectstore name=selectstore>
                    <option value="#" selected>无</option>
                  </select>
                  </span>  
            
    </td>
    </tr>
     </table>
     </form>
    </body>
    </html>
    第二支程序代码selcomp.asp:
    <% Dim xmldoc
       Set xmldoc = Server.CreateObject("Msxml2.DOMDocument.4.0")
       xmldoc.preserveWhiteSpace = True
       xmldoc.async = false
           
       xmldoc.load(Request)
       '创建xml声明
       Set objPI = xmldoc.createProcessingInstruction("xml", "version='1.0' encoding='gb2312'")

       '把xml声明追加到xml文档
       xmldoc.insertBefore objPI, xmldoc.childNodes(0)

       str_area=xmldoc.documentElement.childNodes.item(0).attributes.item(value).value
         
       strxml="<area>"  
       strxml=strxml&"<node value=""111"" name=""222""/>"
       strxml=strxml&"</area>"
         
       xmldoc.loadXML(strxml)

       Response.ContentType="text/xml"
       xmldoc.save(Response)
    %>

    2009年7月22日 3:19
  • 由于暂时没有2008环境,只能给你提供些建议
    采用
    Set xmldoc = Server.CreateObject("Msxml2.DOMDocument.6.0")
    或者
    Set xmldoc = Server.CreateObject("Msxml2.DOMDocument")
    并安装 msxml6 试试。

    【孟子E章】
    2009年7月22日 8:37
    版主
  • 非常感谢,您的方法很灵,搞定了!
    2009年7月29日 1:46