Linux下libxml2的使用

來源:互聯網
上載者:User

 

 

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了。

聯繫我們

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