`
hax
  • 浏览: 962903 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MSXML默认解析外部DTD

    博客分类:
  • AJAX
XML 
阅读更多
昨日aimingoo说它测试xmldom的速度,发现载入一个wml的时候,费时不可思议的长,且用时不等。甚觉不解。故测之。

测试过程和书写代码略,就简述结论如下。

WML文件有DOCTYPE,上带有DTD声明。怀疑是去读取DTD文件所致。删除整个DOCTYPE声明,果然就好了。

但是程序每次删除DOCTYPE显然不可行,因为这样一个操作无法作为DOM操作(因为当时DOM尚未解析出来),而必须进行字符串处理,这样就不能直接load了。如此hack无论如何无法接受。

于是寻找正途,即msxml上的参数配置。经过狗狗,得到最终方案:
	var xmldoc = new ActiveXObject('MSXML2.DOMDocument.3.0');
	xmldoc.async = true;
	xmldoc.onreadystatechange = xmlLoaded;
	xmldoc.resolveExternals = false;
	xmldoc.validateOnParse = false;
	xmldoc.load('my.wml');


注意,resolveExternals和validateOnParse都需要设置。因为默认要启用validate,若禁用外部DTD的resolve,就无法validate了(除非有内部DTD),会出错(得不到xml dom对象)。

以上。

因印象中此问题以前似解决过,但现在又忘记了(早老痴呆矣),故记录于此。

又,aimingoo说其昨日狗狗半天未得其法,偶笑曰,吾之狗狗神功已经练至第七重也,尔功力尚不足矣。
分享到:
评论

相关推荐

    XML解析MSXML解析

    MSXML(Microsoft XML Core Services)是微软提供的一个解析XML文档的库,它允许开发者在Windows平台上使用多种编程语言(如JavaScript、VBScript、C++、C#等)来处理XML数据。 MSXML解析器提供了两种主要的解析...

    MSXML 4.0 和MSXML 6.0解析器

    在安全方面,6.0版本默认禁用了部分可能引发安全问题的功能,如DTD(Document Type Definition)解析,从而降低了潜在的攻击风险。尽管如此,6.0版本仍然保持了对基本XML处理的支持,包括DOM、SAX、XPath和XSLT。 ...

    msxml解析xml同名节点

    ### msxml解析XML同名节点知识点详解 #### 一、MSXML简介 MSXML(Microsoft XML)是由微软公司开发的一套用于处理XML文档的技术。它提供了多种编程接口,包括COM接口,使得开发者能够轻松地在各种.NET框架之外的...

    利用MSXML解析xml文件实例

    本实例将详细介绍如何利用Microsoft的MSXML库来解析XML文件。 MSXML,全称为Microsoft XML Core Services,是微软提供的一套用于处理XML文档的COM组件。它提供了多种接口,如IXMLDOMDocument,IXMLDOMNode等,供...

    MSXML解析开发包

    MSXML,全称为Microsoft XML Core Services,是由微软公司开发的一款XML解析器,它允许程序员和Web开发者处理、创建和查询XML文档。XML(eXtensible Markup Language)是一种标记语言,广泛用于数据交换、存储和表示...

    MSXML C++解析XML

    MSXML,全称为Microsoft XML Core Services,是由微软提供的一个用于处理XML文档的API,它支持DOM(Document Object Model)和SAX(Simple API for XML)两种解析方式。C++是MSXML库支持的一种编程语言,使得开发者...

    利用MSXML解析XML文档

    例如,MSXML4 引入了对 XML Schema 的支持,而 MSXML6 更加轻量级,专注于 DOM 解析,并提高了性能和安全性。 五、XML 的应用 XML 的广泛应用包括但不限于: 1. 数据交换:不同系统间通过 XML 格式交换数据,如 ...

    MSXML解析器

    MSXML(Microsoft XML Core Services)是微软公司提供的一套用于处理XML文档的API,它使得开发者能够在各种微软平台上解析、创建、操作以及显示XML数据。XML(eXtensible Markup Language)是一种标记语言,常用于...

    用DOM-MSXML实现解析xml文件

    在Windows环境中,DOM-MSXML(Microsoft XML Core Services)是一个常用的XML解析库,它提供了强大的功能来解析和操作XML文档。 DOM(Document Object Model)是一种标准的编程接口,用于处理XML和HTML文档。DOM将...

    MSXML解析XML文档

    通过阅读"MSXML解析XML文档.doc"和"MSXML.doc"这两个文档,你将能够深入了解如何在实践中利用MSXML进行XML文档的处理,包括解析、查询、转换和验证等步骤,同时也能获取关于不同版本的MSXML特性和使用的详细信息。...

    VC编程利用MSXML解析XML文档

    在VC++编程环境中,利用MSXML库解析XML文档是一种常见的技术。MSXML,全称Microsoft XML Core Services,是由微软提供的一套COM组件,用于处理XML数据。它支持DOM(Document Object Model)和SAX(Simple API for ...

    利用MSXML解析XML文本

    利用利用MSXML解析XML文本-VCer_net VC代码 VC开源 VC文章 VC工具 VC知道 VC词典 VC论坛.htm

    C++ 解析XML(MSXML)

    本篇文章将重点讲解如何在C++中使用MSXML库来解析XML。 MSXML(Microsoft XML Core Services)是微软提供的一个组件,它为Windows平台上的应用程序提供了解析XML文档的能力。MSXML支持DOM(Document Object Model)...

    利用VC++与MSXML解析XML文档

    本教程将深入探讨如何在VC++中利用MSXML库解析XML文档。 MSXML,全称Microsoft XML Core Services,是微软提供的一个接口库,用于在Windows环境中解析和操作XML文档。它提供了多种接口,如IXMLDOMDocument、...

    利用VC++与MSXML解析XML文档 .rar

    本教程将详细介绍如何在VC++项目中结合MSXML库来解析XML文档,帮助开发者理解并实现XML数据的读取和处理。 首先,MSXML是Microsoft提供的XML解析器,它包含了多种接口,如DOM(Document Object Model)和SAX...

    C++msxml解析源代码

    在控制台下做的小实例,实现的功能不多,读取节点和属性值,增加节点,删除节点,使用的是 msxml6.dll,由于我的操作系统是64位的,这个dll可能也是64位的,请根据自己的操作系统去使用相应的动态链接库,语言用的...

    XML.rar_c xml_msxml_msxml pudn_msxml xml_xml 解析

    本示例中,"DOM-MSXML实现解析xml文件"着重介绍了如何利用MSXML库的DOM解析器来处理XML。具体步骤如下: 1. **初始化解析器**:首先,需要实例化一个IXMLDOMDocument对象,这可以通过CoCreateInstance函数完成,...

    msxml4.0_SP3 msxml4.0_SP3 msxml4.0

    在给定的压缩包文件中,我们主要关注的是MSXML 4.0 Service Pack 3(SP3),这是一个重要的更新,旨在提高XML解析器的稳定性和安全性。 XML是一种在互联网上广泛使用的标记语言,它允许数据以结构化的方式存储和...

Global site tag (gtag.js) - Google Analytics