msxml dom 全解析 一 什么是msxml 、DOM,什么是msxml DOM
什么是msxml
MSXML 是一款微軟的 xml 語(yǔ)言解析器, 如果你不了解COM,知道這引起就可以了, 否則的話,你應(yīng)該知道, msxml實(shí)際上一種com組件,所謂com組件,可以理解成一個(gè)獨(dú)立的功能模塊, 客戶程序員只需獲取到組件對(duì)象, 然后調(diào)用里面的接口進(jìn)行操作. 對(duì)于組件內(nèi)部如何實(shí)現(xiàn), 不需要關(guān)心. com組件有很多實(shí)現(xiàn)形式, msxml以dll的形式實(shí)現(xiàn)(比如msxml4.dll), 事實(shí)上這種實(shí)現(xiàn)形式也比較通用. 對(duì)于com,不是本文的重點(diǎn),不方便說(shuō)太多(事實(shí)上,我也說(shuō)不了多少,嘿嘿), 如果感興趣,可以看看潘總的那本<
什么是DOM
中文意為XML 文檔對(duì)象模型, 它定義訪問(wèn)和操作XML文檔的標(biāo)準(zhǔn)方法和屬性. DOM 將 XML 文檔作為一個(gè)樹(shù)形結(jié)構(gòu),而樹(shù)葉被定義為節(jié)點(diǎn).它本身是W3C定義的一個(gè)標(biāo)準(zhǔn). 舉個(gè)例子,比如標(biāo)準(zhǔn)定義了如下的節(jié)點(diǎn)類型:Document,DocumentFragment,ProcessingInstruction等.
什么是msxml DOM
msxml DOM可以說(shuō)是微軟按照DOM的標(biāo)準(zhǔn)規(guī)范,實(shí)現(xiàn)的一組API, 它是msxml中一部分, 下面這幅圖來(lái)自msdn,很形象的表達(dá)了這種關(guān)系:
圖1
二搭建環(huán)境
本文所有分析, 源碼測(cè)試都是基于以下環(huán)境: windows XP, visual studio2005, msxml4.0.語(yǔ)言是c/c++
對(duì)于搭建msxml4.0, 可以下載安裝包安裝, 也可以手動(dòng)安裝. 安裝包的實(shí)際上是執(zhí)行下列操作, 把msxml4.dll? msxml4a.dll? msxml4r.dll三個(gè)文件copy
到system32目錄下,并用regsvr32注冊(cè). 所以你也可以手動(dòng)執(zhí)行這些操作.
配置項(xiàng)目環(huán)境
vs2005下有兩種方式引用msxml4, 靜態(tài)鏈接和動(dòng)態(tài)鏈接.
靜態(tài)鏈接
第一步, #include
[cpp] view plain copy print? #import?