C++的XML編程經驗――LIBXML2庫使用指南
寫這篇文章的原因有如下幾點:1)C++標準庫中沒有操作XML的方法,用C++操作XML檔案必須熟悉一種函數庫,LIBXML2是其中一種很優秀的XML庫,而且它同時支援多種程式設計語言;2)LIBXML2庫的Tutorial寫得不太好,尤其是編碼轉換的部分,不適用於中文編碼的轉換;3)網上的大多數關於Libxml2的介紹僅僅是翻譯了內建的資料,沒有詳細介紹如何在windows平台下進行編程,更很少提到如何解決中文問題。
基於以上幾點原因,決定寫一個在Windows平台下,使用C/C++語言,應用LibXml2庫來進行xml文檔操作,同時使用ICONV庫進行中文編碼轉換的文檔。其中還涉及了Makefile、XPATH等相關內容。本文中所有的原始碼在http://www.blogjava.net/Files/wxb_nudt/xml_src.rar。
Libxml2是一個C語言的XML程式庫,可以簡單方便的提供對XML文檔的各種操作,並且支援XPATH查詢,以及部分的支援XSLT轉換等功能。Libxml2的是http://xmlsoft.org/,完全版的庫是開源的,並且帶有例子程式和說明文檔。最好將這個庫先下載下來,因為這樣可以查看其中的文檔和例子。
windows版本的的是http://www.zlatkovic.com/libxml.en.html;這個版本只提供了標頭檔、庫檔案和dll,不包含原始碼、例子程式和文檔。在文本中,只需要下載libxml2庫、iconv庫和zlib庫就行了(注意,libxml2庫依賴iconv和zlib庫,本文中重點關注libxml2和iconv,zlib不介紹),我使用的版本是libxml2-2.6.30.win32.zip、zlib-1.2.3.win32.zip和iconv-1.9.2.win32.zip。
在編程的時候,我們使用windows版本的libxml2、zlib和iconv,將其解壓縮到指定檔案夾,例如D:"libxml2-2.6.30.win32,D:"zlib-1.2.3.win32以及D:"iconv-1.9.2.win32。事實上,我們知道在windows下面使用標頭檔、庫檔案和dll是不需要安裝的,它又沒有使用任何需要註冊的組件或者資料庫,只需要告訴編譯器和連結器這些資源的位置就可以了。
轉自:http://www.blogjava.net/wxb_nudt/archive/2007/11/18/161340.html