3

我一直在研究在 JavaScript 中使用 XML 和 XSLT 的示例,但我不明白 IE 中不同选项之间的区别:

  • Msxml2.DOMDocument.6.0
  • Msxml2.DOMDocument.3.0
  • 微软.XMLHTTP
  • Microsoft.XMLDom

因此,在使用该方法时:

var xml = new ActiveXObject("Xxxxxxx");

xxxxxx 是上述变体之一。

我应该使用哪个?它们之间有什么区别?

4

1 回答 1

6

Microsoft 的基于 COM 的 XML 软件包称为 MSXML,并以不同的版本存在,可以在 Windows 系统上共存。ActiveXObject所有当前支持的 Microsoft OS 版本和最新支持的 Microsoft OS 服务包都带有 MSXML 3 和 MSXML 6。您在 JScript 中传递的程序 ID记录在此处用于 MSXML 3:http: //msdn.microsoft.com/en- us/library/ms766426%28v=vs.85%29和这里的 MSXML 6:http: //msdn.microsoft.com/en-us/library/ms764622%28v=vs.85%29。如您所见,程序 id 以 'MSXML2' 开头并且 MSXML 版本附加在末尾,因此令人困惑的是,MSXML 3.0 DOM 文档具有程序 id MSXML2.DOMDocument.3.0,而 MSXML 6.0 DOM 文档具有程序 id Msxml2.DOMDocument.6.0

以 开头Microsoft.的程序 id 是旧版 MSXML 引入的遗留程序 id,现在你不应该需要它们,因为 MSXML 3 和 MSXML 6 是操作系统的一部分或任何受支持的操作系统上的最新服务。

至于选择 MSXML 3 或 6 的哪个版本,这部分取决于您想要做什么;MSXML 3 和 MSXML 6 之间的主要区别在于,MSXML 6 具有支持针对架构或架构集进行验证的解析器,而 MSXML 3 仅支持基于 DTD 的验证。默认情况下,MSXML 6 还具有一些您需要注意的更严格的安全相关设置,请参阅http://msdn.microsoft.com/en-us/library/ms754611%28v=vs.85%29

正如您的帖子还提到 XSLT,MSXML 3 和 6 都支持 XSLT 和 XPath 1.0,因此就标准合规性而言,您可以选择其中任何一个,就性能而言,您可能会发现 MSXML 6 的性能更好。

于 2012-05-19T10:04:01.660 回答