青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 64, 文章 - 11, 評(píng)論 - 12, 引用 - 0
數(shù)據(jù)加載中……

MSXML 使用 《基礎(chǔ)》

XML 概況

XML解析器介紹

搭建MSXML的使用環(huán)境

MSXML 中的DOM模型

XML 概況

    可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language 簡(jiǎn)寫為XML)與HTML一樣屬于標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(Standard Generalized Markup Language 簡(jiǎn)寫SGML)的子集。由于XML具有簡(jiǎn)潔有效、易學(xué)易用,是開放的國(guó)際化標(biāo)準(zhǔn)和高可擴(kuò)展性等優(yōu)點(diǎn),所以可預(yù)見XML將被更為廣泛地使用。

XML解析器介紹

    為了在日常的工作中操作XML文件,我曾經(jīng)也封裝了一個(gè)XML的操作類。這個(gè)類可以完成添加節(jié)點(diǎn),刪除節(jié)點(diǎn),修改節(jié)點(diǎn)的功能,但是我到現(xiàn)在還是沒有找到一個(gè)方案封裝查找節(jié)點(diǎn)的行為,由于存在一個(gè)這樣的缺陷,所以也就一直不敢發(fā)表。封裝的類底層操作是通過(guò)MSXML來(lái)完成,我只不過(guò)為眾多常用的應(yīng)用提供方便。MSXML提供了兩種方式來(lái)解析XML,分別是DOM和SAX的方式,功能頗為強(qiáng)大豐富。當(dāng)通過(guò)C++來(lái)使用MSXML時(shí),因?yàn)闀?huì)涉及到接口和智能指針等一些COM類型或者結(jié)構(gòu)等,所以使用起來(lái)也須細(xì)心地照管好接口等,否則較容易出現(xiàn)未釋放或者釋放空指針等的錯(cuò)誤。通過(guò)腳本語(yǔ)言來(lái)使用MSXML就很方便,我們不用再自己去照管接口等。在網(wǎng)頁(yè)我們經(jīng)常可以看見javascript使用MSXML來(lái)操作XML的例子。

    在前陣子,我也經(jīng)常使用CMarkup類。由于我使用的是免費(fèi)的,這個(gè)類可以從網(wǎng)上下載。使用起來(lái)也非常簡(jiǎn)單直觀,可以說(shuō)易使用性相當(dāng)高。畢竟是免費(fèi)的,所以它的功能有限,存在不能刪除節(jié)點(diǎn)的不足,如果在應(yīng)用中要?jiǎng)h除節(jié)點(diǎn)時(shí)就不適合了。所以在使用這個(gè)類時(shí),我還是搭著自己封裝的類來(lái)使用。

    曾經(jīng),為項(xiàng)目組到底該應(yīng)用哪種XML解析器而思慮了些日子,也曾去試過(guò)一些庫(kù)。如TinyXml,它只支持DOM方式解析XML,就一般的應(yīng)用來(lái)說(shuō)基本上都是選DOM方式來(lái)操作XML。通過(guò)使用認(rèn)為可以說(shuō)它完全可以滿足我們的需要,但是它支持char字符類型,這給應(yīng)用帶來(lái)了些麻煩,為了使用它我們必須為它傳char字符,但我們?cè)趹?yīng)用開發(fā)中都是要用TCHAR這種字符類型,經(jīng)常的字符轉(zhuǎn)換增加了復(fù)雜性。我真的希望它是支持UNICODE的,在網(wǎng)上也曾看過(guò)文章介紹如何讓它支持UNICODE,可我還沒有嘗試過(guò)。

    C++解析XML庫(kù)除了上面列舉的幾種之外,還有ACE和Xerces。Xerces是一個(gè)開放源碼的庫(kù),而且還支持SAX模型。這里主要介紹MSXML,如果應(yīng)用程序要求在非 windows系統(tǒng)下運(yùn)行,就不適應(yīng)用MSXML。

 

搭建MSXML的使用環(huán)境

MSXML是Microsoft XML Core Services短語(yǔ)的縮寫詞。通過(guò)一組織良好的COM接口向用戶提供操作XML的高效方法,COM服務(wù)器一般隨著windows操作系統(tǒng)一起安裝。COM服務(wù)器(這里是指msxml版號(hào).dll)位于windows\System32目錄下,這個(gè)目錄下通常會(huì)有多個(gè)MSXML*.dll,在使用時(shí)可以根據(jù)需要而選擇適當(dāng)?shù)姆?wù)器。關(guān)于各個(gè)版本的功能或者說(shuō)差異可以查看相關(guān)的文檔,一般來(lái)說(shuō)后續(xù)的版本是以前版本的升級(jí),功能上都有所增強(qiáng)。

由于MSXML是通過(guò)COM服務(wù)器來(lái)提供,在使用COM服務(wù)器時(shí)我們必須能知道其中接口和GUID等信息。目前,主要有以下幾種方式來(lái)提供:(1)頭文件,(2)tlb文件

(3)直接通過(guò)導(dǎo)入DLL的方式來(lái)得到。在幫助文檔中介紹的是使用第三種方式,#import <msxml6.dll> 在導(dǎo)入時(shí)我們可以指定較多的選項(xiàng),如命名空間,接口包裝等等。我通常使用的是第三種方式。在導(dǎo)入之后,我們可以用原始的COM接口方式,也可以使用經(jīng)過(guò)簡(jiǎn)單包裝的智能接口來(lái)編寫程序。在使用包赱的智能指針類時(shí),為了不與SDK的Include目錄中的msxml*.h中的定義沖突,在編寫程序時(shí)可以使用帶命名空間的方式訪問,命名空間可以看debug目錄的.tlh文件。

 

MSXML 中的DOM模型

    MSXML的DOM模型編程接口主要有DOMDocument,IXMLDOMNode,IXMLDOMNodeList(節(jié)點(diǎn)集合),IXMLDOMNamedNodeMap(屬性集合)。從下面這張圖中可以看出有許多其它的接口IXMLDOMElement、IXMLDOMText等等,它們都是以IXMLDOMNode為基類。這些接口都可以與XML中的DOM元素都可以對(duì)應(yīng)起來(lái)。IXMLDOMDocument就對(duì)應(yīng)了XML文檔,這個(gè)接口還實(shí)現(xiàn)持久化的接口。

    

    XML中的DOM模型如下,這個(gè)圖和xml摘自互聯(lián)網(wǎng)。

 

<bookstore>

<book category="COOKING">

<title lang="en">Everyday Italian</title>

<author>Giada De Laurentiis</author>

<year>2005</year>

<price>30.00</price>

</book>

<book category="CHILDREN">

<title lang="en">Harry Potter</title>

<author>J K. Rowling</author>

<year>2005</year>

<price>29.99</price>

</book>

<book category="WEB">

<title lang="en">Learning XML</title>

<author>Erik T. Ray</author>

<year>2003</year>

<price>39.95</price>

</book>

</bookstore>

 

IXMLDOMDocument對(duì)應(yīng)整個(gè)文檔,IXMLDOMElement對(duì)應(yīng)<bookstore>,<book>,<title>,<ahutor>,<year>,<price>等。IXMLDOMText對(duì)應(yīng)著Everyday Italian等及屬性中的值。IXMLDOMAttribute對(duì)應(yīng)著category="CHILDREN",屬性節(jié)點(diǎn)中包含有IXMLDOMText節(jié)點(diǎn)。

posted on 2009-07-06 14:51 Robertxiao 閱讀(1501) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩在线播放三区| 久久久精品一区| 亚洲精品视频免费观看| 日韩视频在线一区二区| 久久精品国产综合精品| 国产精品二区影院| 影音先锋久久| 亚洲男人的天堂在线观看| 久久亚洲美女| 久久激情网站| 国产精品永久免费视频| 99ri日韩精品视频| 免费一级欧美片在线观看| 亚洲欧美国产毛片在线| 免费一级欧美在线大片| 国产日韩欧美| 亚洲欧美在线高清| 亚洲激情一区二区三区| 午夜精品福利电影| 国产精品啊v在线| 在线视频欧美日韩| 欧美激情小视频| 久久久久在线观看| 欧美另类人妖| 99精品99| 亚洲每日在线| 久久大综合网| 国内偷自视频区视频综合| 亚洲综合首页| 久久久综合香蕉尹人综合网| 亚洲一区美女视频在线观看免费| 欧美日韩国产精品专区| 国产专区精品视频| 亚洲精品视频中文字幕| 欧美日本韩国一区| 国产人成精品一区二区三| 黄色亚洲网站| 一区二区三区欧美在线| 欧美一二三区精品| 欧美激情a∨在线视频播放| 亚洲电影在线播放| 亚洲综合首页| 亚洲女人天堂av| 欧美日韩国产丝袜另类| 亚洲高清av在线| 亚洲精品乱码久久久久久按摩观 | 亚洲一区二区毛片| 欧美成人一区二区| 欧美怡红院视频一区二区三区| 亚洲一区二区在线免费观看| 国产精品久在线观看| 欧美一区永久视频免费观看| 乱码第一页成人| 99国产成+人+综合+亚洲欧美| 99re成人精品视频| 国产精品一区亚洲| 亚洲视频第一页| 久久久综合网站| 99re6这里只有精品| 亚洲精品综合久久中文字幕| 亚洲私人黄色宅男| 亚洲一区二区精品在线| 欧美国产日韩xxxxx| 亚洲午夜激情| 一区二区三区久久精品| 亚洲视频免费看| 欧美激情久久久久| 欧美激情aaaa| 亚洲人成在线播放| 亚洲毛片在线观看| 亚洲激情小视频| 美脚丝袜一区二区三区在线观看 | 亚洲成色最大综合在线| 蜜臀久久99精品久久久画质超高清 | 老司机精品久久| 国产一区二区视频在线观看| 一区二区三区日韩欧美| 亚洲第一色在线| 久久久久久9999| 狠狠色综合播放一区二区| 久久国产精品一区二区三区| 欧美成人免费全部观看天天性色| 欧美在线视频网站| 国产一区二区三区在线观看网站| 午夜精品免费在线| 亚洲国产精品成人va在线观看| 久久久999精品免费| 国语精品一区| 欧美成人tv| 欧美韩日亚洲| 亚洲视屏一区| 亚洲一区在线免费观看| 久久久久国产精品人| 亚洲欧美日韩精品综合在线观看| 国产日韩欧美精品一区| 欧美高清不卡在线| 欧美网站在线| 男女激情久久| 国产精品av久久久久久麻豆网| 久久久久女教师免费一区| 欧美成人资源网| 久久久国产精品一区二区三区| 欧美激情综合| 免费欧美高清视频| 国产九区一区在线| 亚洲精品影院| 亚洲国内自拍| 欧美在线视频在线播放完整版免费观看 | 久久不见久久见免费视频1| 亚洲精品色图| 久久在线观看视频| 亚洲黄色毛片| 一本色道久久精品| 欧美日韩国产精品自在自线| 亚洲美女av黄| 午夜亚洲福利| 亚洲电影天堂av| 欧美日韩黄视频| 午夜精品在线看| 欧美成人一区二区三区片免费| 最新69国产成人精品视频免费| 欧美日韩国产精品成人| 亚洲欧美国产高清va在线播| 久久婷婷国产麻豆91天堂| 亚洲精品综合| 国产日韩欧美在线视频观看| 老牛影视一区二区三区| 日韩午夜在线观看视频| 久久久久久成人| 99热这里只有成人精品国产| 国产精品国产三级欧美二区| 久久久久久精| 亚洲无毛电影| 欧美国产日韩a欧美在线观看| 亚洲一区二区三区视频| 在线电影国产精品| 国产精品高潮在线| 欧美成人精品1314www| 午夜久久久久久| 91久久国产精品91久久性色| 亚洲欧美中文字幕| 亚洲片国产一区一级在线观看| 国产伦一区二区三区色一情| 欧美国产日本韩| 久久久国产精彩视频美女艺术照福利 | 在线视频你懂得一区二区三区| 国内精品久久久久伊人av| 欧美日韩国产影片| 久久精品国产亚洲高清剧情介绍| 亚洲日本欧美| 欧美大片在线观看一区| 久久不见久久见免费视频1| 中日韩视频在线观看| 亚洲国产mv| 伊人狠狠色j香婷婷综合| 国产精品中文字幕欧美| 国产精品va在线| 最近看过的日韩成人| 亚洲激情婷婷| 国产精品久久毛片a| 久久精品国产亚洲a| 亚洲裸体俱乐部裸体舞表演av| 午夜精品视频网站| 在线精品亚洲| 欧美午夜精品久久久久久孕妇 | 国产精品网站在线| 久久精品中文字幕一区| 亚洲成人在线视频播放| 樱花yy私人影院亚洲| 欧美激情亚洲精品| 午夜精品久久久久久久99樱桃| 免费人成精品欧美精品| 亚洲一级黄色片| 亚洲精品久久久久久一区二区 | 午夜精品视频一区| 欧美激情亚洲视频| 性做久久久久久免费观看欧美| 黄色一区二区三区| 国产精品xxxxx| 蜜桃av一区二区三区| 亚洲午夜一二三区视频| 欧美激情一区二区在线| 久久精品国产v日韩v亚洲| 亚洲美女网站| 韩国三级电影久久久久久| 欧美日韩一区二区视频在线| 久久精品国产77777蜜臀| 日韩一二在线观看| 美女999久久久精品视频| 亚洲影院一区| 99精品视频免费观看| 在线观看亚洲视频啊啊啊啊| 欧美日韩国产一区二区| 久久久久久久综合色一本| 亚洲一区美女视频在线观看免费| 亚洲国产精品久久久久秋霞影院 | 亚洲东热激情| 麻豆精品91| 久久免费视频在线| 欧美在线日韩精品|