当前位置: 首页 > 编程笔记 >

asp中使用MSXML2.DOMDocument处理XML数据时的注意事项

西门旻
2023-03-14
本文向大家介绍asp中使用MSXML2.DOMDocument处理XML数据时的注意事项,包括了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("http://localhost/asp/ServerXML.xml")'==========C

'或者加载服务器本地xml文件

'ReturnValue = oXML.Load("d:\test.xml")'==========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资源的错误。

总结

加载方式

是否使用

ServerXMLHTTP组件

加载结果

异步加载 不使用 加载会成功。 但是加载到DOMDocument中的XML文档为空
同步加载 不使用 将会遭遇失败!错误原因为: -2146697209 - 无所需资源的可用数据。
异步加载 使用 不被允许的
同步加载 使用 真正成功
 类似资料:
  • 主要内容:Internet Explorer - XML 数据岛,XML 数据岛实例,实例,Internet Explorer - 行为,实例 1 - 鼠标悬停突出,实例 2 - 打字机模拟这里列出了您在使用 XML 时应该尽量避免使用的技术。 Internet Explorer - XML 数据岛 它是什么?XML 数据岛是嵌入到 HTML 页面中的 XML 数据。 为什么要避免使用它?XML 数据岛只在 Internet Explorer 浏览器中有效。 用什么代替它?您应当在 HTML 中

  • 本文向大家介绍asp的SQL语句中and和or同时使用的注意事项,包括了asp的SQL语句中and和or同时使用的注意事项的使用技巧和注意事项,需要的朋友参考一下 今天在调试程序的时候,需要用到and or,如果不掌握技巧输出的结构与我们想象的差距有点大,这里分享一下,希望大家以后多多支持呐喊教程 asp的SQL语句中and 和or是不是不可以同时使用呢? 答案是肯定的,下面来看下方法: 1、非常

  • 本文向大家介绍ThinkPHP中处理表单中的注意事项,包括了ThinkPHP中处理表单中的注意事项的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP中处理表单中的注意事项。分享给大家供大家参考。具体分析如下: ThinkPHP中在表单提交数据中,有以下问题需要加以注意: 1、直接通过url访问模块中的某一个方法,这样很不安全。可以使用下面来限制 在3.1.3中使用常量 IS_

  • 本文向大家介绍PHP PDO数据库操作预处理与注意事项,包括了PHP PDO数据库操作预处理与注意事项的使用技巧和注意事项,需要的朋友参考一下 PDO(PHP Database Object)扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询和获取数据。在数据库操作方面更加安全更加高效! PDO为PHP访问各类

  • 问题内容: 我正在评估各种选项,以便针对Oracle中的单个临时数据集运行一堆高性能查询。在T- SQL中,我可能会使用内存中的临时表,但是Oracle没有与此功能完全相同的功能。 我目前看到这些选项: 1.全局临时表 计划: 2.取消PL / SQL表类型变量的嵌套 计划: 3.物化视图 对于这个用例,我将它们排除在外,因为所讨论的临时数据集相当复杂,并且对更新实例化视图的影响将太大。 实际数据

  • 主要内容:if语句使用,布尔运算,isin()操作,reindex()操作Pandas 基于 NumPy 构建,它遵循 NumPy 设定的一些规则。因此,当您在使用 Pandas 时,需要额外留意一些事项,避免出现一些不必要的错误。 if语句使用 在 if 语句中,如果您需要将 Pandas 对象转换为布尔值时,需要格外留意,这种操作会引起  ValueError 异常, 下面通过一组示例做简单说明: 输出结果: 从输出结果可以看出,上述代码引发了 ValueError