学院首页>网页制作>XML>XML中的常见问题 (四)

XML中的常见问题 (四)

作者: 来源: 添加时间:2006-5-21 20:25:59
 代码示例将从 sun religion 示例中加载 3.8MB 测试文件“ot.xml”。Variant 类用于包装 Win32 VARIANT 基本类型。

  因为在每次检索节点时实际上都获得了新的包装程序,因此不能在节点上使用指针比较。因此,不要使用下面的代码,


  IXMLDOMNode root1 = doc.getDocumentElement();
  IXMLDOMNode root2 = doc.getDocumentElement();
  if (root1 == root2)...

  而要使用下面的代码:


  if (ComLib.isEqualUnknown(root1, root2)) ....

  .class 包装程序的总大小大约为 160KB。但是,为了与 W3C 规范完全符合,应该只使用 IXMLDOM* 包装程序。下面的类是旧的 IE 4.0 XML 接口,可以从 msxml 文件夹中删除它们:


  IXMLAttribute*,
  IXMLDocument*, XMLDocument*
  IXMLElement*,
  IXMLError*,
  IXMLElementCollection*,
  tagXMLEMEM_TYPE*
  _xml_error*

  这使大小减少为 147KB。同时还可以删除下面的项目:


  DOMFreeThreadedDocument
  在 Java 应用程序中从多个线程访问 XML 文档。
  XMLHttpRequest
  用 XML DAV HTTP 扩展与服务器通信。
  IXTLRuntime
  定义 XSL 样式表脚本对象。
  XMLDSOControl
  绑定到 HTML 页面中的 XML 数据。
  XMLDOMDocumentEvents
  在分析过程中返回回调。

  这可以将大小减少到 116KB。要使它更小,请考虑 DOM 本身有两层的事实:核心层包括:


  DOMDocument, IXMLDOMDocument
  IXMLDOMNode*
  IXMLDOMNodeList*
  IXMLDOMNamedNodeMap*
  IXMLDOMDocumentFragment*
  IXMLDOMImplementation
  IXMLDOMParseError

  和用户可能需要保留的 DTD 信息:


  IXMLDOMDocumentType
  IXMLDOMEntity
  IXMLDOMNotation

  XML 文档中的所有节点类型都是 IXMLDOMNode,它提供全部功能,但是存在每种节点类型的更高级别的包装程序。因此,如果修改 DOMDocument 包装程序并将这些特定类型更改为使用 IXMLDOMNode,那么所有下面的接口都可以删除:


  IXMLDOMAttribute
  IXMLDOMCDATASection
  IXMLDOMCharacterData
  IXMLDOMComment
  IXMLDOMElement
  IXMLDOMProcessingInstruction
  IXMLDOMEntityReference
  IXMLDOMText

  删除这些将使大小减少到 61KB。但是,对 IXMLDOMElement 来说,getAttribute 和 setAttribute 方法都是有用的。否则需要使用:

  IXMLDOMNode.getAttributes().setNamedItem(...)

第 3 页,共 3 页 [1] [2] [3]
站内搜索