import msxml.*;
public class Class1
{
public static void main (String[] args)
{
DOMDocument doc = new DOMDocument();
doc.load(new Variant("file://d:/samples/ot.xml"));
System.out.println("Loaded " + doc.getDocumentElement().getNodeName());
}
}
代碼示例將從 sun religion 示例中加載 3.8MB 測試文件“ot.xml”。Variant 類用于包裝 Win32 VARIANT 基本類型。
因為在每次檢索節(jié)點時實際上都獲得了新的包裝程序,因此不能在節(jié)點上使用指針比較。因此,不要使用下面的代碼,
IXMLDOMNode root1 = doc.getDocumentElement();
IXMLDOMNode root2 = doc.getDocumentElement();
if (root1 == root2)...
而要使用下面的代碼:
if (ComLib.isEqualUnknown(root1, root2)) ....
.class 包裝程序的總大小大約為 160KB。但是,為了與 W3C 規(guī)范完全符合,應(yīng)該只使用 IXMLDOM* 包裝程序。下面的類是舊的 IE 4.0 XML 接口,可以從 msxml 文件夾中刪除它們:
IXMLAttribute*,
IXMLDocument*, XMLDocument*
IXMLElement*,
IXMLError*,
IXMLElementCollection*,
tagXMLEMEM_TYPE*
_xml_error*
這使大小減少為 147KB。同時還可以刪除下面的項目:
DOMFreeThreadedDocument
在 Java 應(yīng)用程序中從多個線程訪問 XML 文檔。
XMLHttpRequest
用 XML DAV HTTP 擴展與服務(wù)器通信。
IXTLRuntime
定義 XSL 樣式表腳本對象。
XMLDSOControl
綁定到 HTML 頁面中的 XML 數(shù)據(jù)。
XMLDOMDocumentEvents
在分析過程中返回回調(diào)。
這可以將大小減少到 116KB。要使它更小,請考慮 DOM 本身有兩層的事實:核心層包括:
DOMDocument, IXMLDOMDocument
IXMLDOMNode*
IXMLDOMNodeList*
IXMLDOMNamedNodeMap*
IXMLDOMDocumentFragment*
IXMLDOMImplementation
IXMLDOMParseError
和用戶可能需要保留的 DTD 信息:
IXMLDOMDocumentType
IXMLDOMEntity
IXMLDOMNotation
XML 文檔中的所有節(jié)點類型都是 IXMLDOMNode,它提供全部功能,但是存在每種節(jié)點類型的更高級別的包裝程序。因此,如果修改 DOMDocument 包裝程序并將這些特定類型更改為使用 IXMLDOMNode,那么所有下面的接口都可以刪除:
IXMLDOMAttribute
IXMLDOMCDATASection
IXMLDOMCharacterData
IXMLDOMComment
IXMLDOMElement
IXMLDOMProcessingInstruction
IXMLDOMEntityReference
IXMLDOMText
刪除這些將使大小減少到 61KB。但是,對 IXMLDOMElement 來說,getAttribute 和 setAttribute 方法都是有用的。否則需要使用:
IXMLDOMNode.getAttributes().setNamedItem(...)
2015年全國職稱計算機考試教材(2007模 .. 定價:¥225 優(yōu)惠價:¥213 更多書籍 | |
全國職稱計算機考試速成過關(guān)系列套裝:W .. 定價:¥133 優(yōu)惠價:¥133.0 更多書籍 |