【发布时间】:2012-10-05 15:06:43
【问题描述】:
我有这个简单的VBScript,它发送一个HTTP POST 请求并读取返回的HTML 响应。
Function httpPOST(url, body, username, password )
Set Http = CreateObject("Msxml2.ServerXMLHTTP")
Http.Open "POST", url, False, username, password
Http.setRequestHeader _
"Content-Type", _
"application/x-www-form-urlencoded"
Http.send body
pagestatus = Http.status
if pagestatus<> "200" then
httpPOST="Error:"& pagestatus
else
'httpPOST = Http.ResponseBody
'httpPOST = Http.responseText
Set objXMLDoc = CreateObject("MSXML.DOMDocument")
objXMLDoc.async = False
objXMLDoc.validateOnParse = False
objXMLDoc.load(Http.ResponseBody)
Set objNode = objXMLDoc.selectSingleNode("/html/body/center/img")
httpPost = objNode.getAttribute("alt")
end if
End Function
HTML 响应格式如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>---</title>
</head>
<body>
<center>
<img alt="You are now connected" src="pages/GEN/connected_gen.png">
</center>
</body>
</html>
这个脚本的问题是它总是返回Error: Object required: 'objNode'
我尝试了很多 XML 解析器的变体,最后每次遇到与 XML 对象相关的相同错误时都放弃了。
【问题讨论】:
-
当您尝试从文件加载而不是从网络加载时,它是否有效?你确定 html 没有定义任何 xmlns 吗?
-
是的,如果我尝试在本地或从 Web 读取 xml,我会遇到同样的错误。此 html 是从浏览器的视图源中复制的。
标签: xml parsing vbscript xml-parsing