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

隨筆 - 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>
            久久精品国产一区二区电影| 久久成人免费日本黄色| 久久亚洲综合色| 一区二区不卡在线视频 午夜欧美不卡'| 亚洲精品中文字| 国产亚洲精久久久久久| 欧美激情导航| 午夜精品美女久久久久av福利| 男人的天堂成人在线| 久久精品视频在线播放| 一区二区三区视频在线 | 亚洲小说欧美另类婷婷| 伊人久久大香线| 国产伦精品一区二区三区高清版| 久久久久久久999精品视频| 一区二区毛片| 中文国产一区| 亚洲免费在线观看| 亚洲欧美日韩综合| 另类亚洲自拍| 欧美日韩中文字幕| 欧美日韩在线三级| 欧美三级不卡| 国产一区免费视频| 在线观看日韩精品| 国模私拍视频一区| 影音先锋中文字幕一区二区| 亚洲人成在线免费观看| 91久久国产精品91久久性色| 欧美成人精品激情在线观看| 欧美一区二区三区视频| 性欧美暴力猛交另类hd| 亚洲精品网站在线播放gif| 一区二区欧美激情| 久久夜色精品| 欧美不卡一卡二卡免费版| 亚洲综合成人婷婷小说| 久久综合伊人77777蜜臀| 国产美女在线精品免费观看| 黄色一区二区三区| 欧美影院成人| 亚洲美女毛片| 欧美成人一区二区三区| 国产精品亚洲综合久久| 最新成人av网站| 久久久久国产精品www| 99综合精品| 国产欧美日韩不卡免费| 制服丝袜亚洲播放| 亚洲第一搞黄网站| 久久国产日韩欧美| 激情av一区| 老司机午夜精品视频| 亚洲宅男天堂在线观看无病毒| 欧美视频一区在线| 一区二区三区高清不卡| 亚洲三级电影全部在线观看高清| 欧美伊人久久久久久久久影院| 国产精品日日摸夜夜摸av| 亚洲精品国产精品国自产观看| 久久久久网址| 久久久爽爽爽美女图片| 亚洲免费观看高清完整版在线观看熊| 午夜精品三级视频福利| 极品日韩久久| 日韩天堂av| 国产精品黄色在线观看| 欧美成年人视频网站| 免费影视亚洲| 亚洲免费在线视频一区 二区| 久久久久国产精品午夜一区| 亚洲欧洲精品一区| 99在线热播精品免费99热| 久久精品视频免费| 99精品视频网| 欧美制服第一页| 在线视频成人| 欧美xart系列高清| 亚洲人成亚洲人成在线观看图片| 男同欧美伦乱| 精品成人一区二区三区四区| 99riav1国产精品视频| 日韩一级网站| 欧美亚洲成人免费| 亚洲精品免费电影| 亚洲精品欧洲| 欧美色精品在线视频| 日韩视频免费看| 亚洲中字在线| 国产日韩精品一区二区三区在线| 亚洲另类一区二区| 亚洲一区二区三区视频播放| 国产精品免费一区二区三区观看| 一区二区三区 在线观看视频| 一区二区三区日韩在线观看 | 亚洲欧美怡红院| 国产视频一区欧美| 久久嫩草精品久久久精品| 国产精品久久99| 另类天堂av| 亚洲欧美日韩网| 亚洲茄子视频| 久久久精品国产99久久精品芒果| 在线播放日韩| 国产欧美一区二区三区国产幕精品| 欧美在线一二三| 亚洲午夜性刺激影院| 欧美高清在线一区二区| 欧美一级视频一区二区| 一本色道久久88综合日韩精品| 国产精品久久网| 国产精品v欧美精品v日韩精品| 一本色道久久| 亚洲高清资源| 亚洲欧美电影院| 欧美国产日本高清在线| 国产毛片精品国产一区二区三区| 欧美日韩aaaaa| 国产亚洲一区二区三区| 日韩午夜激情电影| 久久久精品网| 亚洲欧美国产一区二区三区| 六月婷婷久久| 在线日本欧美| 亚洲精品小视频在线观看| 国产精品一区在线观看| 国产欧美精品在线观看| 国产精品一区三区| 亚洲第一毛片| 日韩写真视频在线观看| 一区二区三区黄色| 午夜一区在线| 欧美国产一区视频在线观看| 亚洲人成免费| 久久久亚洲人| 国产精品av久久久久久麻豆网| 国产精品稀缺呦系列在线| 亚洲丰满在线| 久久精品视频免费| 国产日韩欧美三区| 宅男精品导航| 91久久在线| 久久夜色精品一区| 国产视频一区三区| 久久成人18免费网站| 玖玖玖国产精品| 99精品国产在热久久| 国产日韩精品视频一区二区三区| 久久久亚洲高清| 久久成人资源| 欧美在线观看网站| 久久精品视频亚洲| 亚洲精品资源| 国产精品视频一二| 欧美日韩91| 美女精品视频一区| 午夜欧美精品久久久久久久| 亚洲永久免费视频| 亚洲欧美综合另类中字| 亚洲国产视频直播| 香蕉久久夜色精品国产使用方法| 中文精品一区二区三区| 欧美精品国产精品日韩精品| 亚洲人精品午夜| 亚洲视频精品在线| 国产三级欧美三级日产三级99| 性欧美精品高清| 久久久噜噜噜久噜久久| 91久久久久久| 亚洲图片你懂的| 激情国产一区| 夜夜嗨av色综合久久久综合网| 欧美日韩福利视频| 欧美亚洲自偷自偷| 免费不卡在线视频| 午夜精品视频网站| 久久亚洲精品欧美| 亚洲伊人久久综合| 久久久久久穴| 亚洲综合第一| 欧美成在线观看| 久久久综合视频| 久热精品视频在线| 欧美日本亚洲| 欧美高清成人| 一区二区亚洲精品| 亚洲午夜精品一区二区三区他趣| 激情五月综合色婷婷一区二区| 日韩一级欧洲| 亚洲免费观看高清完整版在线观看熊 | 欧美国产在线视频| 国产亚洲人成a一在线v站| 亚洲精品久久| 99精品热视频| 欧美日韩免费一区二区三区| 欧美国产日本| 日韩亚洲精品在线| 欧美精品激情blacked18| 亚洲国产天堂久久国产91| 亚洲日本欧美日韩高观看|