从XML中提取值失败

时间:2016-05-19 21:15:59

标签: xml vbscript asp-classic

我搜索了许多关于读取XML文件的示例和教程,但我无法从单个XML文档中提取值。我认为我对Value,SingleNode,Text等声明感到困惑。

<?xml version="1.0" encoding="utf-8"?>
<resultObj>
  <result>False</result>
  <invoiceNumber>1</invoiceNumber>
  <invoiceDate>2016/05/18 08:26:35</invoiceDate>
</resultObj>

VBScript(使用经典ASP)读取结果:

Set xmlDOM = Server.CreateObject("MSXML2.DOMDocument")
xmlDOM.async = False
xmlDOM.setProperty "ServerHTTPRequest", True
xmlDOM.Load("file.xml")
Set myroot= xmlDOM.selectSingleNode("/resultObj/result")
response.write myroot.Text

最后一行出错:

  

Microsoft VBScript运行时错误&#39; 800a01a8&#39;
  需要对象

1 个答案:

答案 0 :(得分:3)

假设您实际从ASP页面运行此代码,我怀疑您在加载文件时遇到问题(可能不在Web服务器进程的当前工作目录中)。由于LoadSelectSingleNode都会无声地失败而不会引发错误,因此您需要在加载文件后检查ParseError属性的值:

xmlDOM.Load("file.xml")
If xmlDOM.ParseError <> 0 Then
  response.write xmlDOM.ParseError.Reason
Else
  response.write "file loaded"
End If