DOM标准定义了很多API,http://www.w3.org/TR/DOM-Level-3-Core/core.html
在Mozilla中,DOM内核接口提供如下:idl是interface文件后缀。
sunlit@ubunt:~/mozilla-central/dom/interfaces/core$ ls Makefile.in nsIDOMDOMLocator.idl nsIDOM3Attr.idl nsIDOMDOMStringList.idl nsIDOM3Document.idl nsIDOMElement.idl nsIDOM3Node.idl nsIDOMEntity.idl nsIDOM3Text.idl nsIDOMEntityReference.idl nsIDOM3TypeInfo.idl nsIDOMNamedNodeMap.idl nsIDOMAttr.idl nsIDOMNameList.idl nsIDOMCDATASection.idl nsIDOMNode.idl nsIDOMCharacterData.idl nsIDOMNodeList.idl nsIDOMComment.idl nsIDOMNodeSelector.idl nsIDOMDocumentFragment.idl nsIDOMNotation.idl nsIDOMDocument.idl nsIDOMNSDocument.idl nsIDOMDocumentType.idl nsIDOMNSEditableElement.idl nsIDOMDOMConfiguration.idl nsIDOMNSElement.idl nsIDOMDOMErrorHandler.idl nsIDOMProcessingInstruction.idl nsIDOMDOMError.idl nsIDOMText.idl nsIDOMDOMException.idl nsIDOMUserDataHandler.idl nsIDOMDOMImplementation.idl nsIDOMXMLDocument.idl
如果你熟悉ActiveX,那就基本原样照办。不熟悉没问题,照猫画虎就可以了。创建文档、然后元素成树。
唯一要注意的是如果使用Sarissa,那就要用Sarissa创建文档,否则支持不了。
在nsIDOMXMLDocument.idl里面提供了load方法,使用myXML.load之类的命令很容易读取数据。或者像上面的例子慢慢设置。load默认的读取数据方式是异步。
现在你可以利用DOM丰富的API了。可以把树转换、保存成XML等等。
有一篇很好的文章(https://developer.mozilla.org/cn/使用Javascript和DOM_Interfaces来处理HTML)解释了DOM在动态内容的功能。
至于DOM如何实现,就不在这里罗嗦了。在了解了DOM标准和接口 后,源代码很容易看。