Asp classic 为什么我经常遇到对象错误?

Asp classic 为什么我经常遇到对象错误?,asp-classic,Asp Classic,我已从中剪切并粘贴了此示例 我无法让它工作 我经常遇到这样的对象错误: Microsoft VBScript运行时(0x800A01A8) 所需对象 这是我正在使用的代码和xml文件 <% option explicit Dim objXMLDoc Set objXMLDoc = CreateObject("Microsoft.XMLDOM") objXMLDoc.async = False objXMLDoc.load(Server.M

我已从中剪切并粘贴了此示例

我无法让它工作

我经常遇到这样的对象错误:

Microsoft VBScript运行时(0x800A01A8) 所需对象

这是我正在使用的代码和xml文件

    <%
    option explicit

    Dim objXMLDoc

    Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
    objXMLDoc.async = False
    objXMLDoc.load(Server.MapPath("vocabulary.xml"))

    Dim Node

Set Node = objXMLDoc.documentElement.selectSingleNode("label")
Response.write Node.text

%>

xml文件

<?xml version="1.0" encoding="utf-8" ?>
    <labels>
        <label>Some label</label>
    </labels>

一些标签

提到的错误可能在最后一行的级别。假设对XMLDOM对象的所有其他调用都能顺利进行,selectSingleNode将返回null,因为找不到作为路径的“label”

试一试

Set Node = objXMLDoc.documentElement.selectSingleNode("labels/label")
相反。或者,对于这种类型的DOM逻辑,这是一个很好的实践,您可以测试selectSingleNode是否成功返回

Set Node = objXMLDoc.documentElement.selectSingleNode("label")
If Node = Nothing
Ehen
   Response.Write  "Not found..."
Else
Response.Write Node.text

提到的错误可能在最后一行的级别。假设对XMLDOM对象的所有其他调用都能顺利进行,selectSingleNode将返回null,因为找不到作为路径的“label”

试一试

Set Node = objXMLDoc.documentElement.selectSingleNode("labels/label")
相反。或者,对于这种类型的DOM逻辑,这是一个很好的实践,您可以测试selectSingleNode是否成功返回

Set Node = objXMLDoc.documentElement.selectSingleNode("label")
If Node = Nothing
Ehen
   Response.Write  "Not found..."
Else
Response.Write Node.text

我已经试过你的密码了,它很管用。所以我可以想到两个可能的原因

  • 错误是从
    objXMLDoc.load
    而不是
    objXMLDoc.selectSingleNode
    引发的,这意味着找不到XML文件(或者权限被拒绝?)。检查文件路径是否确实有效并且可以访问。尝试
    Response.write objXMLDoc.text
    查看是否可以获得任何东西,它也应该显示“Some label”

  • 我只是猜测,但可能是因为“MSXML”库的不同版本

  • 如果不是原因1,您可能希望尝试以下代码(从):


    我已经试过你的密码了,它很管用。所以我可以想到两个可能的原因

  • 错误是从
    objXMLDoc.load
    而不是
    objXMLDoc.selectSingleNode
    引发的,这意味着找不到XML文件(或者权限被拒绝?)。检查文件路径是否确实有效并且可以访问。尝试
    Response.write objXMLDoc.text
    查看是否可以获得任何东西,它也应该显示“Some label”

  • 我只是猜测,但可能是因为“MSXML”库的不同版本

  • 如果不是原因1,您可能希望尝试以下代码(从):


    “labels”是document元素,因此documentElement.selectSingleNode调用确实应该返回一个label节点。我需要使用selectSingleNode的完整路径才能使其工作。“labels”是document元素,因此documentElement.selectSingleNode调用确实应该返回一个标签节点。我需要使用selectSingleNode的完整路径才能工作。我还尝试切换msxml版本。我不确定这是否有用。我也尝试过切换msxml版本。我不确定这是否有帮助。