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

隨筆 - 64, 文章 - 11, 評論 - 12, 引用 - 0
數據加載中……

MSXML 使用 《基礎》

XML 概況

XML解析器介紹

搭建MSXML的使用環境

MSXML 中的DOM模型

XML 概況

    可擴展標記語言(Extensible Markup Language 簡寫為XML)與HTML一樣屬于標準通用標記語言(Standard Generalized Markup Language 簡寫SGML)的子集。由于XML具有簡潔有效、易學易用,是開放的國際化標準和高可擴展性等優點,所以可預見XML將被更為廣泛地使用。

XML解析器介紹

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

    在前陣子,我也經常使用CMarkup類。由于我使用的是免費的,這個類可以從網上下載。使用起來也非常簡單直觀,可以說易使用性相當高。畢竟是免費的,所以它的功能有限,存在不能刪除節點的不足,如果在應用中要刪除節點時就不適合了。所以在使用這個類時,我還是搭著自己封裝的類來使用。

    曾經,為項目組到底該應用哪種XML解析器而思慮了些日子,也曾去試過一些庫。如TinyXml,它只支持DOM方式解析XML,就一般的應用來說基本上都是選DOM方式來操作XML。通過使用認為可以說它完全可以滿足我們的需要,但是它支持char字符類型,這給應用帶來了些麻煩,為了使用它我們必須為它傳char字符,但我們在應用開發中都是要用TCHAR這種字符類型,經常的字符轉換增加了復雜性。我真的希望它是支持UNICODE的,在網上也曾看過文章介紹如何讓它支持UNICODE,可我還沒有嘗試過。

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

 

搭建MSXML的使用環境

MSXML是Microsoft XML Core Services短語的縮寫詞。通過一組織良好的COM接口向用戶提供操作XML的高效方法,COM服務器一般隨著windows操作系統一起安裝。COM服務器(這里是指msxml版號.dll)位于windows\System32目錄下,這個目錄下通常會有多個MSXML*.dll,在使用時可以根據需要而選擇適當的服務器。關于各個版本的功能或者說差異可以查看相關的文檔,一般來說后續的版本是以前版本的升級,功能上都有所增強。

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

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

 

MSXML 中的DOM模型

    MSXML的DOM模型編程接口主要有DOMDocument,IXMLDOMNode,IXMLDOMNodeList(節點集合),IXMLDOMNamedNodeMap(屬性集合)。從下面這張圖中可以看出有許多其它的接口IXMLDOMElement、IXMLDOMText等等,它們都是以IXMLDOMNode為基類。這些接口都可以與XML中的DOM元素都可以對應起來。IXMLDOMDocument就對應了XML文檔,這個接口還實現持久化的接口。

    

    XML中的DOM模型如下,這個圖和xml摘自互聯網。

 

<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對應整個文檔,IXMLDOMElement對應<bookstore>,<book>,<title>,<ahutor>,<year>,<price>等。IXMLDOMText對應著Everyday Italian等及屬性中的值。IXMLDOMAttribute對應著category="CHILDREN",屬性節點中包含有IXMLDOMText節點。

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


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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>
            亚洲美女啪啪| 欧美午夜精品久久久| 免费视频最近日韩| 欧美亚洲一区| 亚洲视频在线观看一区| 亚洲一区二区视频在线| 欧美黄色日本| 久久只有精品| 亚洲国产成人久久综合| 美国成人毛片| 米奇777在线欧美播放| 亚洲作爱视频| 欧美一乱一性一交一视频| 国产亚洲精品久久久久动| 国产精品久久一区主播| 国产精品一区二区三区久久久 | 久久在精品线影院精品国产| 久久精品一区二区三区不卡牛牛 | 亚洲第一搞黄网站| 亚洲三级毛片| 欧美在线免费一级片| 欧美粗暴jizz性欧美20| 亚洲精品免费在线| 久久精品人人做人人爽电影蜜月| 久久久久久久欧美精品| 国产精品hd| 99亚洲精品| 欧美激情性爽国产精品17p| 一区二区三区四区五区在线| 久久人人看视频| 国产一区av在线| 欧美成人嫩草网站| 狠狠色丁香久久婷婷综合丁香| 99视频一区二区三区| 女人天堂亚洲aⅴ在线观看| 亚洲影院色在线观看免费| 国产精品久久久久久久午夜| 亚洲国产一二三| 亚洲国产综合在线看不卡| 国产精品稀缺呦系列在线| 欧美a级理论片| 亚洲精品国产视频| 久久精品一区二区三区中文字幕| 久久久精品五月天| 久久久999精品视频| 国产精品影视天天线| 99国产精品久久久久久久久久| 国产性色一区二区| 亚洲一二三区在线| 亚洲欧美激情四射在线日| 老司机精品视频一区二区三区| 国产欧美视频一区二区三区| 在线观看成人一级片| 男男成人高潮片免费网站| 久久久久成人精品| 亚洲第一视频网站| 亚洲精品专区| 国产视频自拍一区| 日韩小视频在线观看专区| 国产欧美日韩不卡| 亚洲精品欧美日韩| 91久久国产综合久久蜜月精品| 久久久久成人精品| 久久久人成影片一区二区三区| 午夜精品久久一牛影视| 欧美精品久久久久久| 欧美成人中文字幕在线| 亚洲激情中文1区| 狠狠综合久久| 老司机aⅴ在线精品导航| 久久久国产91| 一区二区三区在线视频观看| 午夜一级在线看亚洲| 久久激情五月婷婷| 久久亚洲国产精品一区二区 | 99精品视频免费| 欧美日韩精品一二三区| a4yy欧美一区二区三区| 亚洲国产精品一区二区久| 久久婷婷综合激情| 久久在线免费观看视频| 亚洲一区二区三区四区五区午夜| 欧美日韩久久不卡| 亚洲三级免费电影| 久久综合一区二区| 先锋a资源在线看亚洲| 久久久爽爽爽美女图片| 欧美主播一区二区三区| 99这里有精品| 国产精品亚洲а∨天堂免在线| 亚洲精品视频在线| 国产精品99久久久久久www| 欧美国产一区二区| 日韩一级在线| 欧美777四色影视在线| 中文国产一区| 尤物yw午夜国产精品视频| 欧美**人妖| 亚洲一区精彩视频| 欧美不卡视频一区发布| 久久疯狂做爰流白浆xx| 中文在线资源观看网站视频免费不卡| 欧美日韩国产麻豆| 亚洲视频在线免费观看| 亚洲在线免费观看| 亚洲欧洲在线播放| 牛牛影视久久网| 免费欧美日韩| 亚洲国产精品久久人人爱蜜臀 | 亚洲精品影视在线观看| 久久躁日日躁aaaaxxxx| 久久蜜桃精品| 亚洲久色影视| 欧美成人免费播放| 这里只有精品在线播放| 久久精品午夜| 亚洲香蕉成视频在线观看| 国产精品一区视频| 欧美v亚洲v综合ⅴ国产v| 正在播放欧美视频| 欧美在线视频一区二区三区| 在线免费高清一区二区三区| 久久成人在线| 中文成人激情娱乐网| 久久午夜激情| 国产精品99久久久久久久女警 | 欧美黑人国产人伦爽爽爽| 亚洲国内精品在线| 国产精品久久国产愉拍| 欧美v日韩v国产v| 黄色精品网站| 国产精品美女久久久久av超清| 久久国产精品久久久| a91a精品视频在线观看| 媚黑女一区二区| 卡通动漫国产精品| 亚洲一区二区三区高清不卡| 日韩亚洲精品在线| 亚洲美女av网站| 亚洲高清不卡av| 在线免费观看日本欧美| 在线播放豆国产99亚洲| 国精品一区二区| 亚洲精品专区| 99视频一区| 久久本道综合色狠狠五月| 免费在线成人av| 亚洲男女毛片无遮挡| 午夜精品视频| 亚洲看片一区| 夜夜嗨av色综合久久久综合网| 噜噜噜躁狠狠躁狠狠精品视频 | 一本色道久久加勒比88综合| 久久九九全国免费精品观看| 中文高清一区| 美女被久久久| 久久这里只有精品视频首页| 久久久久久**毛片大全| 亚洲激情av在线| 9l视频自拍蝌蚪9l视频成人| 亚洲综合日韩中文字幕v在线| 久久天堂精品| 国产亚洲精品一区二555| 一区二区精品| 久久婷婷久久一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 宅男噜噜噜66一区二区66| 欧美专区在线| 久久国产精品一区二区三区| 99re66热这里只有精品4| 久久免费少妇高潮久久精品99| 国产日韩欧美中文| 久久久久se| 免费观看成人鲁鲁鲁鲁鲁视频| 激情六月综合| 久久国产视频网站| 亚洲永久免费观看| 国产精品一区二区三区乱码| 亚洲最新视频在线| 亚洲欧洲日韩在线| 欧美视频二区36p| 午夜欧美精品| 久久亚洲精选| 亚洲国产裸拍裸体视频在线观看乱了| 久久精品视频99| av成人老司机| 在线观看日韩一区| 欧美国产精品久久| 欧美mv日韩mv国产网站app| 亚洲国产精品黑人久久久| 亚洲国产黄色片| 欧美午夜不卡在线观看免费| 午夜精品免费在线| 久热精品视频在线| 欧美在线免费看| 欧美a级在线| 欧美在线啊v一区| 宅男精品视频| 狼狼综合久久久久综合网| 国产一区二区无遮挡|