XML 初級教程(一)

來源:互聯網
上載者:User

XML 初級教程(一)

作者:我本楚狂人

下載原始碼

一、XML是什嗎?
XML即extensibe markup language的縮寫,也就是可擴充標識語言。
它是作為一種通用資料結構而出現的,儘管它曾被認為取代html。
實際上我們可以將其看作"文本資料庫" 。 XML檔案通常需要一個驗證檔案,就像資料庫的字元段表一樣。常用的為DTD檔案,現在比較流行的為XSL檔案。

二、解析XML的方法
使用C++解析XML的最大好處是速度快,特別是大量資料時。
XML不像html有固定的標記,沒有固定的解析器如IE或Netscape可以解析XML真正含義。 我們需要自己編寫一段程式做這樣的事情。
就像我們可以用ODBC/ADO讀取資料庫一樣,我們可以用SAX/DOM解析XML檔案。

三、SAX vs DOM
SAX是基於事件驅動的, 通過判斷每一行資料的類型(節點/元素/其他)而決定如何處理。DOM則對XML檔案整體產生一個樹狀結構,很顯然DOM更實用一些,因為可隨時讀取文檔任意節點資料,但其對記憶體要求大一些。SAX會快一些,因為解析時只儲存當前行的資訊。不管用那種方法解析出的資料都需要我們決定其用途,例如一個含圖形資料XML,就需要調用GDI函數根據解析出來的資料畫圖。

SAX簡介:

startDocument(); //開啟XML文檔;startElementz();//處理XML資料;endElement();  endDocument(); //關閉XML文檔;

例子:

假設XML檔案,<?xml version="1.0"?><parts><part>TurboWidget</part></parts> SAX處理分析過程;StartDocument( )StartElement( "parts" )StartElement( "part" )Characters( "TurboWidget" )EndElement( "part" )EndElement( "parts" )EndDocument( )

DOM簡介:

例子:

IXMLDOMDocument* pDoc;//XML文檔Object;CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,     IID_IXMLDOMDocument, (void**)&pDoc); XMLDOMNode * pNode;//XML節點Object;pDoc->QueryInterface(IID_IXMLDOMNode,(void**)(&pNode));

資料處理(可以是遞迴函式):

   GetChildItem(); //獲得子節點   節點處理:    get_nodeName();//節點名   get_nodeTypeString();//節點含資料   get_nodeType();//節點類型 

四、最後提供一個DOM程式例子,該例子僅僅能產生XML的樹狀圖,沒有更多處理。 更多內容將在以後發布。

五、希望能給大家協助,歡迎大家批評指正,具體請看原始碼。使用開發包為MSXML3,當然用Apache Xerces原理也是一樣的。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.