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

隨筆 - 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>
            9色国产精品| 欧美激情在线播放| 亚洲成人在线视频网站| 亚洲综合日韩| 欧美日本国产| 亚洲高清不卡av| 欧美国产第二页| 欧美风情在线观看| 亚洲一区二区成人| 在线一区二区视频| 国产美女精品视频| 欧美一级电影久久| 麻豆精品在线视频| 亚洲欧洲视频| 亚洲精品自在久久| 国产亚洲二区| 午夜视频一区| 亚洲精品视频免费观看| 国产九色精品成人porny| 国产精品美女xx| 久久综合成人精品亚洲另类欧美| 亚洲一区二区三区四区视频| 狠狠综合久久av一区二区老牛| 亚洲福利久久| 国产欧美日韩视频在线观看 | 欧美1区2区视频| 欧美肥婆bbw| 久久综合久久美利坚合众国| 欧美日韩精品欧美日韩精品 | 久久婷婷国产麻豆91天堂| 麻豆精品精品国产自在97香蕉| 亚洲欧美国产va在线影院| 免费视频一区| 欧美激情国产日韩| 国模精品一区二区三区色天香| 亚洲天堂av在线免费观看| 一二三四社区欧美黄| 亚洲精品影院| 欧美成人情趣视频| 国内久久精品视频| 久久亚洲影院| 欧美国产三区| 亚洲卡通欧美制服中文| 欧美片第1页综合| 国产自产v一区二区三区c| 亚洲娇小video精品| 欧美福利一区二区| 亚洲免费在线电影| 美女主播精品视频一二三四| 亚洲私人影院在线观看| 亚洲国产美女久久久久| 老司机精品福利视频| 亚洲级视频在线观看免费1级| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲国产精品传媒在线观看| 亚洲精选国产| 国产三级欧美三级| 欧美jizzhd精品欧美喷水 | 亚洲免费观看高清完整版在线观看| 亚洲精品视频在线观看网站 | 国产精品入口福利| 免费在线亚洲欧美| 欧美一区二区三区四区在线| 亚洲国产高清自拍| 久久久综合香蕉尹人综合网| 日韩亚洲精品电影| 亚洲盗摄视频| 国产在线精品二区| 国产精品一区久久久| 欧美午夜在线一二页| 欧美成人性网| 欧美大片国产精品| 欧美成人精品h版在线观看| 久久久久久久性| 亚洲欧美成人| 亚洲制服少妇| 亚洲欧美制服中文字幕| 亚洲精品在线看| 一本一道久久综合狠狠老精东影业| 欧美高清在线播放| 欧美韩日一区二区三区| 在线成人国产| 亚洲国产精品成人va在线观看| 国产一区深夜福利| 亚洲国产高清aⅴ视频| 亚洲成人在线视频网站| 亚洲激情第一页| 亚洲视频专区在线| 先锋亚洲精品| 欧美福利在线观看| 中文一区字幕| 久久青草久久| 欧美三级免费| 永久免费精品影视网站| 日韩一级精品| 久久精品麻豆| 亚洲美女区一区| 久久欧美肥婆一二区| 欧美日韩成人网| 黄色成人片子| 亚洲欧美日韩一区二区| 亚洲第一视频网站| 亚洲欧美日韩人成在线播放| 久久综合网hezyo| 国产精品老牛| 亚洲午夜免费福利视频| 免费一级欧美片在线观看| 一区二区毛片| 欧美理论视频| 亚洲久久在线| 亚洲第一福利在线观看| 久久国产精品久久精品国产| 国产精品高潮久久| 亚洲欧美国产毛片在线| 91久久久精品| 欧美黄色aa电影| 亚洲精品黄色| 亚洲美女毛片| 欧美三日本三级三级在线播放| 亚洲精品日韩精品| 亚洲福利免费| 欧美午夜欧美| 午夜日韩在线| 久久爱www.| 亚洲高清在线播放| 亚洲福利在线观看| 亚洲精品一二| 国产乱码精品一区二区三区五月婷| 99精品久久久| 亚洲免费视频中文字幕| 国产香蕉97碰碰久久人人| 久久网站热最新地址| 米奇777超碰欧美日韩亚洲| 日韩午夜电影av| 羞羞色国产精品| 亚洲美女视频| 欧美制服丝袜| 亚洲色无码播放| 欧美在线视频免费观看| 亚洲三级免费观看| 男女激情久久| 免费成人高清视频| 免费在线一区二区| 亚洲精品免费观看| 一本色道综合亚洲| 欧美激情在线免费观看| 国产精品免费在线| 亚洲视频999| 欧美电影免费观看高清完整版| 久久精品在这里| 好看的亚洲午夜视频在线| 久久久国产精品一区二区中文| 久久久99爱| 亚洲天堂av在线免费| 国产精品高潮久久| 午夜精品亚洲一区二区三区嫩草| 免费在线成人| 免费不卡亚洲欧美| 国产精品视频网站| 亚洲黄一区二区三区| 在线播放视频一区| 久久精品系列| 欧美成人午夜激情| 一区一区视频| 麻豆视频一区二区| 免费欧美日韩| 在线日韩av| 亚洲第一精品在线| 国产在线观看一区| 狂野欧美一区| 亚洲日本成人在线观看| 亚洲无人区一区| 亚洲一区免费观看| 国产精品视频99| 久久综合色影院| 亚洲一区二区在线观看视频| 久久国内精品视频| 亚洲精品乱码久久久久久| 国产精品毛片a∨一区二区三区|国 | 国产精品成人午夜| 久久av一区| 亚洲精品社区| 久久午夜电影网| 亚洲一区精品电影| 亚洲激情在线| 国内揄拍国内精品少妇国语| 欧美激情国产高清| 久久精品水蜜桃av综合天堂| av不卡在线| 亚洲人成欧美中文字幕| 久久天天躁夜夜躁狠狠躁2022 | 亚洲激情不卡| 久久资源在线| 久久这里只精品最新地址| 亚洲自拍偷拍色片视频| 一本色道久久综合狠狠躁篇怎么玩| 国产日韩欧美视频在线| 国产精品成人aaaaa网站| 欧美激情1区2区3区| 久久久久se|