日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Linux(Ubuntu10.04 )下libxml2的安装以及使用示例

發布時間:2023/12/4 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Linux(Ubuntu10.04 )下libxml2的安装以及使用示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

libxml2的安裝:

1.安裝包下載地址:http://xmlsoft.org/,我下載的地方是http://xmlsoft.org/sources/old/

2.下載好壓縮包后,對其進行解壓,解壓的命令是:sudo tar xvzf libxml2-2.7.1.tar.gz

3.配置,編譯安裝過程:

解壓好之后,進入解壓好的文件夾中:

cd libxml2-2.7.1

(默認路徑安裝)

sudo ./configure

sudo make

sudo make install

(自己設置安裝路徑)

或則

sudo ./configure --prefix /home/user/myxml/xmlinst

sudo make

sudo make install

export PATH=/home/user/myxml/xmlinst/bin:$PATH

我是按照默認路徑安裝的,因此下面的示例編譯方法都是針對默認路徑的。

libxml2經典應用示例xmlCreator.cpp:

 1 #include <stdio.h>
 2 #include <libxml/parser.h>
 3 #include <libxml/tree.h>
 4 
 5 int main(int argc,char **argv)
 6 {
 7     xmlDocPtr doc = NULL;/*document pointer*/
 8     xmlNodePtr root_node = NULL,node = NULL,node1 = NULL;/*node pointers*/
 9     //Creates a new document,a node and set it as a root node
10     doc = xmlNewDoc(BAD_CAST"1.0");
11     root_node = xmlNewNode(NULL,BAD_CAST"root");
12     xmlDocSetRootElement(doc,root_node);
13     //creates a new node,which is "attached" as child node of root_node node.
14     xmlNewChild(root_node,NULL,BAD_CAST"node1",BAD_CAST"content of node1");
15     
16     //xmlNewProp()creates attributes,which is "attached" to an node.
17     node = xmlNewChild(root_node,NULL,BAD_CAST"node3",BAD_CAST"node has attributes");
18     xmlNewProp(node,BAD_CAST"attribute",BAD_CAST"yes");
19     
20     //Here goes another way to create nodes.
21     node = xmlNewNode(NULL,BAD_CAST"node4");
22     node1 = xmlNewText(BAD_CAST"other way to create content");
23     
24     xmlAddChild(node,node1);
25     xmlAddChild(root_node,node);
26 
27     //Dumping document to stdio or file
28     xmlSaveFormatFileEnc(argc > 1 ? argv[1]:"-",doc,"UTF-8",1);
29 
30     /*free the document*/
31     xmlFreeDoc(doc);
32     xmlCleanupParser();
33     xmlMemoryDump();//debug memory for regression tests
34     
35     return 0;
36 }

編譯過程:此處是cpp文件,因此是,g++ xmlCreator.cpp -o xmlCreator -I /usr/local/include/libxml2 -L /usr/local/lib -lxml2

如果是c文件,則應該改為:gcc xmlCreator.cpp -o xmlCreator -I /usr/local/include/libxml2 -L /usr/local/lib -lxml2

******-I 后接頭文件目錄 -L后接lib庫目錄

......$ gcc xmlCreator.cpp -o xmlCreator -I /usr/local/include/libxml2 -lxml2
/tmp/ccPeKBRE.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

......$ g++ xmlCreator.cpp -o xmlCreator -I /usr/local/include/libxml2 -lxml2 ---------------ok

因此,出現這種錯誤的時候,要注意看是不是編譯器用錯了,用gcc編譯C程序,用g++編譯C++程序,對號入座就沒有問題了。

生成xmlCreator文件后,運行結果如下:

1 <?xml version="1.0" encoding="UTF-8"?>
2 <root>
3   <node1>content of node1</node1>
4   <node3 attribute="yes">node has attributes</node3>
5   <node4>other way to create content</node4>
6 </root>

到此,一個使用libxml2庫創建xml文件的簡單例子就講完了。。。。。。

總結

以上是生活随笔為你收集整理的Linux(Ubuntu10.04 )下libxml2的安装以及使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。