来自here: XML:
<Vocabulary>
<Word type="noun" level="1">
<English>cat</English>
<Spanish>gato</Spanish>
</Word>
<Word type="verb" level="1">
<English>speak</English>
<Spanish>hablar</Spanish>
</Word>
<Word type="adj" level="1">
<English>big</English>
<Spanish>grande</Spanish>
</Word>
</Vocabulary>
我创建了xml文件,将其放在与经典asp文件相同的目录中:
<%
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("vocabulary.xml")
Set Node = objXMLDoc.documentElement.selectSingleNode("Word/Spanish")
document.write(Node.text)
%>
但我明白了:
Microsoft VBScript运行时错误'800a01a8'
需要的对象:'objXMLDoc.documentElement'
/so-rms/reports/xmltest.asp,第7行
我做错了什么?他们得到了元素。我收到了错误。感谢。
编辑:我把它放在:
If objXMLDoc.parseError.errorCode <> 0 Then
response.write objXMLDoc.parseError.errorCode & "ERROR CODE </br>"
response.write objXMLDoc.parseError.reason & "REASON CODE </br>"
response.write objXMLDoc.parseError.line & "LINE CODE </br>"
End If
得到了:
-2146697210ERROR CODE
系统错误:-2146697210。原因代码
0LINE代码 从下面试过:
dim path: path = Server.MapPath("vocabulary.xml")
dim fso: set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(path) then
Response.Write "path '" & path & "' not found"
end if
Set objXMLDoc = CreateObject("MSXML2.DOMDocument.3.0")
objXMLDoc.async = False
if not objXMLDoc.load("vocabulary.xml") then
' report loading error
response.write "error"
end if
'objXMLDoc.load("vocabulary.xml")
If objXMLDoc.parseError.errorCode <> 0 Then
response.write objXMLDoc.parseError.errorCode & "ERROR CODE </br>"
response.write objXMLDoc.parseError.reason & "REASON CODE </br>"
response.write objXMLDoc.parseError.line & "LINE CODE </br>"
End If
Set Node = objXMLDoc.documentElement.selectSingleNode("Word/Spanish")
document.write(Node.text)
编辑:
我还将xml文件更改为工作XML返回(bing maps)的URL,并且它工作正常。所以我猜这是文件。感谢。
答案 0 :(得分:5)
我认为您的xml文档未加载。 load()
方法返回bool
以指示文件是否已正确加载,因此您可以检查
if not objXMLDoc.load("vocabulary.xml") then
' report loading error
end if
parseError
也属性具有srcText
属性,您可以使用该属性来确定文件中解析问题的位置。
检查文件是否存在于您正在使用的路径上也是一个好主意。使用Server.MapPath()
和Scripting.FileSystemObject
执行此操作:
dim path: path = Server.MapPath("vocabulary.xml")
dim fso: set fso = CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(path) then
Response.Write "path '" & path & "' not found"
end if
此外,我建议使用更高版本的XML库MSXML2.DomDocument