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

26 篇文章 0 订阅

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:

#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

int main(int argc,char **argv)
{
    xmlDocPtr doc = NULL;/*document pointer*/
    xmlNodePtr root_node = NULL,node = NULL,node1 = NULL;/*node pointers*/
    //Creates a new document,a node and set it as a root node
    doc = xmlNewDoc(BAD_CAST"1.0");
    root_node = xmlNewNode(NULL,BAD_CAST"root");
    xmlDocSetRootElement(doc,root_node);
    //creates a new node,which is "attached" as child node of root_node node.
    xmlNewChild(root_node,NULL,BAD_CAST"node1",BAD_CAST"content of node1");
    
    //xmlNewProp()creates attributes,which is "attached" to an node.
    node = xmlNewChild(root_node,NULL,BAD_CAST"node3",BAD_CAST"node has attributes");
    xmlNewProp(node,BAD_CAST"attribute",BAD_CAST"yes");
    
    //Here goes another way to create nodes.
    node = xmlNewNode(NULL,BAD_CAST"node4");
    node1 = xmlNewText(BAD_CAST"other way to create content");
    
    xmlAddChild(node,node1);
    xmlAddChild(root_node,node);

    //Dumping document to stdio or file
    xmlSaveFormatFileEnc(argc > 1 ? argv[1]:"-",doc,"UTF-8",1);

    /*free the document*/
    xmlFreeDoc(doc);
    xmlCleanupParser();
    xmlMemoryDump();//debug memory for regression tests
    
    return 0;
}

编译过程:此处是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
<br>......$ 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文件的简单例子就讲完了。。。。。。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值