http://www.cnblogs.com/flysnail/archive/2012/06/25/2561319.html
----
一、下載、安裝
下載libxml2,官方網站,下載合適自己版本的源碼包。
http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-devel
俺下載的版本為libxml2-devel-2.6.32-11.10.i586
解壓縮,編譯運行
./configure –prefix /usr/local/xml #安裝目錄
make
make install
安裝完成後/usr/local/xml下會多產生4個檔案夾
bin include lib share
二、運行demo
使用Eclipse開發,建立C++項目。
1、解決標頭檔路徑問題。
預設包含的目錄下面會自動添加libxml的標頭檔。如果Eclipse沒有自動添加,我們可以手動添加,右鍵properties,進行以下修改
俺安裝後的標頭檔路徑為
$/include/libxml2/libxml/*.h
而原始碼裡面的工作目錄預設為<libxml/*.h>
這時候工程是無法找到這些檔案的,我們需要做的就是將目錄修改一下。
$/include/libxml/*.h
當然,還有一種辦法是將那些標頭檔的包含的代碼修改一下。例如:
?
#include < libxml/xmlversion.h > |
修改為
#include < libxml2/libxml/xmlversion.h >
這種方式是要將幾十個標頭檔都做這種處理,俺才不會那麼傻呢。
2、demo src
void writeXML(void){ //定義文檔和節點指標 xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0"); xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root"); //設定根節點 xmlDocSetRootElement(doc, root_node); //在根節點中直接建立節點 xmlNewTextChild(root_node, NULL, BAD_CAST "newNode1", BAD_CAST "newNode1 content"); xmlNewTextChild(root_node, NULL, BAD_CAST "newNode2", BAD_CAST "newNode2 content"); xmlNewTextChild(root_node, NULL, BAD_CAST "newNode3", BAD_CAST "newNode3 content"); //建立一個節點,設定其內容和屬性,然後加入根結點 xmlNodePtr node = xmlNewNode(NULL, BAD_CAST"node2"); xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT"); xmlAddChild(root_node, node); xmlAddChild(node,content); xmlNewProp(node,BAD_CAST"attribute", BAD_CAST "yes"); //建立一個兒子和孫子節點 node = xmlNewNode(NULL, BAD_CAST "son"); xmlAddChild(root_node,node); xmlNodePtr grandson = xmlNewNode(NULL, BAD_CAST "grandson"); xmlAddChild(node,grandson); xmlAddChild(grandson, xmlNewText(BAD_CAST "This is a grandson node")); //儲存xml文檔 int nRel = 0; nRel = xmlSaveFile("CreatedXml.xml",doc); if (nRel != -1) { cout<<"一個xml文檔被建立,寫入"<<nRel<<"個位元組"<<endl; } //釋放文檔內節點動態申請的記憶體 xmlFreeDoc(doc);}
3、設定lib
Eclipse設定連結路徑: /usr/local/xml/lib
設定串連庫 xml2
使用命令編譯的時候,加上以下參數:
-L /usr/local/xml/lib / -lxml2
恩,下面編譯執行就ok了。
分類: Linux Develop
http://www.cnblogs.com/flysnail/archive/2012/06/25/2561319.html
----
一、下載、安裝
下載libxml2,官方網站,下載合適自己版本的源碼包。
http://rpmfind.net/linux/rpm2html/search.php?query=libxml2-devel
俺下載的版本為libxml2-devel-2.6.32-11.10.i586
解壓縮,編譯運行
./configure –prefix /usr/local/xml #安裝目錄
make
make install
安裝完成後/usr/local/xml下會多產生4個檔案夾
bin include lib share
二、運行demo
使用Eclipse開發,建立C++項目。
1、解決標頭檔路徑問題。
預設包含的目錄下面會自動添加libxml的標頭檔。如果Eclipse沒有自動添加,我們可以手動添加,右鍵properties,進行以下修改
俺安裝後的標頭檔路徑為
$/include/libxml2/libxml/*.h
而原始碼裡面的工作目錄預設為<libxml/*.h>
這時候工程是無法找到這些檔案的,我們需要做的就是將目錄修改一下。
$/include/libxml/*.h
當然,還有一種辦法是將那些標頭檔的包含的代碼修改一下。例如:
?
#include < libxml/xmlversion.h > |
修改為
#include < libxml2/libxml/xmlversion.h >
這種方式是要將幾十個標頭檔都做這種處理,俺才不會那麼傻呢。
2、demo src
void writeXML(void){ //定義文檔和節點指標 xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0"); xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root"); //設定根節點 xmlDocSetRootElement(doc, root_node); //在根節點中直接建立節點 xmlNewTextChild(root_node, NULL, BAD_CAST "newNode1", BAD_CAST "newNode1 content"); xmlNewTextChild(root_node, NULL, BAD_CAST "newNode2", BAD_CAST "newNode2 content"); xmlNewTextChild(root_node, NULL, BAD_CAST "newNode3", BAD_CAST "newNode3 content"); //建立一個節點,設定其內容和屬性,然後加入根結點 xmlNodePtr node = xmlNewNode(NULL, BAD_CAST"node2"); xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT"); xmlAddChild(root_node, node); xmlAddChild(node,content); xmlNewProp(node,BAD_CAST"attribute", BAD_CAST "yes"); //建立一個兒子和孫子節點 node = xmlNewNode(NULL, BAD_CAST "son"); xmlAddChild(root_node,node); xmlNodePtr grandson = xmlNewNode(NULL, BAD_CAST "grandson"); xmlAddChild(node,grandson); xmlAddChild(grandson, xmlNewText(BAD_CAST "This is a grandson node")); //儲存xml文檔 int nRel = 0; nRel = xmlSaveFile("CreatedXml.xml",doc); if (nRel != -1) { cout<<"一個xml文檔被建立,寫入"<<nRel<<"個位元組"<<endl; } //釋放文檔內節點動態申請的記憶體 xmlFreeDoc(doc);}
3、設定lib
Eclipse設定連結路徑: /usr/local/xml/lib
設定串連庫 xml2
使用命令編譯的時候,加上以下參數:
-L /usr/local/xml/lib / -lxml2
恩,下面編譯執行就ok了。