歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Fedora下libxml2的使用

Fedora下libxml2的使用

日期:2017/3/1 9:44:18   编辑:Linux編程

一、下載、安裝

下載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自帶libxml2庫 在RedHat Linux上安裝php-5.2.5 http://www.linuxidc.com/Linux/2008-05/12749.htm

Ubuntu libxml2 http://www.linuxidc.com/Linux/2007-10/8075.htm

Libxml2在Linux下的使用 http://www.linuxidc.com/Linux/2014-01/95402.htm

Ubuntu下用arm-none-linux-gnueabi交叉編譯libxml2 http://www.linuxidc.com/Linux/2014-05/101902.htm

更多Fedora相關信息見Fedora 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=5

Copyright © Linux教程網 All Rights Reserved