asp中使⽤MSXML2.DOMDocument处理XML数据时的注
意事项
asp使⽤MSXML2.DOMDocument加载⽹络上的xml⽂件时,在调⽤load⽅法前需要注意设置:
复制代码代码如下:
oXML.setProperty "ServerHTTPRequest", true
即启⽤ServerHTTPRequest请求,要不会出现系统错误: -2146697209。
asp使⽤MSXML2.DOMDocument组件时需要注意⼀下4中情况
复制代码代码如下:
<%
Dim oXML, oXMLError, ReturnValue, x
Set oXML = Server.CreateObject("MSXML2.DOMDocument")
' 设置DOMDocument加载xml⽂件时是异步加载,还是同步加载
oXML.async = false'==========A
' 设置⽬的: True/False,表⽰是否使⽤“服务器安全”的ServerXMLHTTP组件加载xml⽂档
oXML.setProperty "ServerHTTPRequest", true'==========B
' 通过HTTP加载⽹络xml⽂件件
ReturnValue = oXML.Load("localhost/l")'==========C
'或者加载服务器本地xml⽂件
'ReturnValue = oXML.Load("d:\l")'==========D
' 打出DOMDocument.load的返回值:
Response.write "Result of load method is =" & ReturnValue & "<br>"
%>
第⼀种情况(加载空⽂档):
默认情况下,DOMDocument对象的async属性是TRUE,即异步⽅式加载。⽽且加载时不使⽤ServerXMLHTTP组件。即注释掉上⾯代码中的第A⾏和B⾏代码。
复制代码代码如下:
'oXML.async = false'==========A
'oXML.setProperty "ServerHTTPRequest", true'==========B
这时候,加载会成功。 ReturnValue将会是TRUE。但是加载到DOMDocument中的XML⽂档为空!也就是说,load⽅法返回的TRUE是⼀个幌⼦!结果如下所⽰:对于这种情况,程序员⼀定要⼩⼼! XML虽然没有报告任何错误,⽽且load⽅法也表明成功,但是DOM的xml属性却为空。
第⼆种情况(错误原因为: -2146697209):
如果你显式地声明async属性为FALSE,即同步⽅式加载XML⽂档。⽽且加载时不使⽤ServerXMLHTTP组件。即只注释掉上⾯代码中的第B⾏代码。
复制代码代码如下:
oXML.async = false'==========A
'oXML.setProperty "ServerHTTPRequest", true'==========B
那么将会遭遇失败!ReturnValue将是False。错误原因为: -2146697209 - ⽆所需资源的可⽤数据。也就说,同步加载Internet上的XML资源是不会成功的!!
第三种情况(不允许):
如果你的async属性为TRUE,即异步⽅式加载XML⽂档。⽽且加载时使⽤ServerXMLHTTP组件。即启⽤上⾯代码中的第B⾏代码。注释掉第A⾏代码。
复制代码代码如下:
'oXML.async = false'==========A
oXML.setProperty "ServerHTTPRequest", true'==========B
报告了错误!说明使⽤SXH组件异步加载XML⽂档,是不被允许的!错误描述为: -1072897486 - The ServerHTTPRequest property can not be used when loading a document asynchronously and is only supported on Windows NT 4.0 and above.
第四种情况(正确使⽤):
如果你显式地声明async属性为FALSE,即同步⽅式加载XML⽂档。⽽且加载时使⽤ServerXMLHTTP组件。即启⽤上⾯代码中的第A和B⾏代码。
复制代码代码如下:
oXML.async = false'==========A
oXML.setProperty "ServerHTTPRequest", true'==========B
那就可以了!说明使⽤SXH组件加载XML⽂档,能够纠正了异步⽅式加载Internet资源的错误。
总结
是否使⽤
加载结果
加载⽅式
python处理xml文件ServerXMLHTTP组件
异步加载不使⽤加载会成功。但是加载到DOMDocument中的XML⽂档为空
同步加载不使⽤将会遭遇失败!错误原因为: -2146697209 - ⽆所需资源的可
⽤数据。
异步加载使⽤不被允许的
同步加载使⽤真正成功
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论