Qt中的QtXml模組

來源:互聯網
上載者:User

Qt中的QtXml模組提供了兩組不同的API用於讀取XML文檔

SAX(Simple API for XML):通過virtual function直接嚮應用程式報告"parsing event“。
DOM(Document Object Model):將XML文檔轉換為樹型結構。

SAX接近底層,速度更快;DOM更便於使用。

15.1    Readin XML with SAX

SAX是事實上的讀取XML文檔的標準API,Qt中的SAX類仿照了Java中的SAX2的實現。

Qt提供了一個SAX-based的non-validateing類型的XML解析器QXmlSimpleReader。解析器在讀取文檔時,會調用其註冊的handler class中的virtual function。

Qt為QXmlSimpleReader提供了若干handler class,對於大多數應用,只需要使用QXmlContentHandlerr和QXmlErrorHandler。

Qt提供了一個對程式員很方便的QXmlDefaultHandler,它對所有的handler class都進行了派生,並對所有virtual function提供了簡單的實現。

要使用QtXml庫,需要在.pro檔案中加入下面一行: "QT   +=xml"

15.2    Reading XML with DOM

DOM是由W3C制訂的解析XML的標準API,Qt提供了一個non-validating類型的DOM level 2層級的實現,可用於XML文檔的讀寫以及其他動作。

DOM在記憶體中將XML檔案表示為樹的形式。

QDomDocument::setContent(),設定要讀取的XML文檔。

15.3    Writing XML

Qt中存在兩種產生XML文檔的方法

1).    構建一個DOM tree,並對其調用save()
2).    手動輸出XML格式

兩種方式之間的選擇獨立於讀取XML文檔時選擇SAX或是DOM

預設情況下,QDomDocument::save()產生文檔時採用UTF-8編碼格式。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.