安装方法:

sudo apt-get install libxml2

sudo apt-get install libxml2-dev

利用以上命令安装完软件包后可以利用以下命令来查看软件包的状态(确定是否安装成功)

dpkg -s libxml2-dev

也可以用如下命令(得到的结果是一样的):

dpkg-query -s libxml2-dev

软件安装好后,默认情况下,libxml2对应的头文件均放置在/usr/include/libxml2/libxml目录下,这一信息可利用如下两个命令查看(任一命令都能查看到相关信息)

dpkg -L libxml2-dev

xml2-config --cflags

libxml2的库文件放置在/usr/lib/i386-linux-gnu目录下,这一信息可利用如下两个命令查看(任一命令都能查看到相关信息)

dpkg -L libxml2-dev

xml2-config --libs

对应libxml2有一个工具,名字为xml2-config,xml2-config所在的目录为/usr/bin,其实这是一个shell脚本,关于xml2-config的详细信息可以通过如下命令来查看

man xml2-config

安装后libxml2库后,就可以开始进行基于libxml2库的开发了。现有以下一段程序,程序文件名为CreateXmlFile.c,是基于libxml2库开发的。

推荐阅读

Debian软件包管理工具apt-get和dpkg操作备忘 http://www.linuxidc.com/Linux/2014-04/99847.htm

Debian编译内核时err: line 65 dpkg-gencontrol command not found http://www.linuxidc.com/Linux/2014-03/98783.htm

Ubuntu安装软件提示“无法打开锁文件 /var/lib/dpkg/lock ”问题解决 http://www.linuxidc.com/Linux/2013-01/77790.htm

Ubuntu dpkg 安装软件 常用参数 http://www.linuxidc.com/Linux/2012-10/73200.htm

Linux-dpkg软件包和APT软件包管理操作 http://www.linuxidc.com/Linux/2011-11/47357.htm

Apt-get | dpkg | YUM 使用相关简介(英文) http://www.linuxidc.com/Linux/2011-06/37526.htm

代码如下

/**********************************
created: 2014/05/12
filename: CreateXmlFile.c
auther: wang kai
depend: libxml2.lib
purpose: 创建一个xml文件
**********************************/

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

int main(int argc, char **argv)
{
 //Define document pointer
 xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");

//Define node pointer
 xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root");

//Set the root element of the document
 xmlDocSetRootElement(doc,root_node);

//Create child nodes directly in the root node
 xmlNewTextChild(root_node,NULL,BAD_CAST"newnode1",BAD_CAST"newnode1 content");
 xmlNewTextChild(root_node,NULL,BAD_CAST"newnode2",BAD_CAST"newnode2 content");

//Create a new node
 xmlNodePtr node = xmlNewNode(NULL,BAD_CAST"node2");
 //Create a new text node
 xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT");

//Add a new node to parent
 xmlAddChild(root_node,node);
 xmlAddChild(node,content);
 //Create a new property carried by a node
 xmlNewProp(node,BAD_CAST"attribute",BAD_CAST"yes");

//Create a son and grandson node element
 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"));
 
 //Dump an XML document to a file
 int nRel = xmlSaveFile("CreatedXml.xml",doc);
 if(nRel != -1)
  printf("一个xml文档被创建,写入 %d 个字节\n",nRel);
 
 //Free up all the structures used by a document,tree included
 xmlFreeDoc(doc);
 //printf("Hello World!\n");
 return 0;
}

对这个程序进行编译时,可用以下命令

gcc -I/usr/include/libxml2  CreateXmlFile.c -o CreateXmlFile -L /usr/lib/i386-linux-gnu -lxml2

其中,-I参数是为了指定gcc编译器查找头文件的路径,-L参数是为了指定libxml2库文件所在的路径,最后的-lxml2指定具体的库文件。(-lxml2一定要放在命令的最后位置,不然会出现找不到链接库的错误,如下图所示)

具体为什么一定要把-lxml2放在最后的位置,本人目前还没弄明白,有待进一步研究

编译命令也可以写成如下形式:

gcc `xml2-config --cflags` -L /usr/lib/i386-linux-gnu CreateXmlFile.c -o CreateXmlFile -lxml2

gcc `xml2-config --cflags`  CreateXmlFile.c -o CreateXmlFile -L /usr/lib/i386-linux-gnu -lxml2

gcc CreateXmlFile.c -o CreateXmlFile `xml2-config --cflags --libs`

形式虽然不一样,其实命令的实际内容是一样的。因为命令xml2-config --cflags的执行结果为

-I/usr/include/libxml2        (指明include头文件所在的目录)

命令xml2-config --libs的执行结果为

-L/usr/lib/i386-linux-gnu -lxml2  (指明libxml2库文件所在的目录以及具体的库文件)

(不管写成何种形式,只要保证 -lxml2 在编译命令的最后位置即可)

libxml2的安装和使用相关推荐

  1. linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用

    Ubuntu 14.04下libxml2库的安装方法: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 利用以上命令安装完软 ...

  2. linux在线安装libxml2,关于linux 安装libxml2

    安装php的时候提示libxml2 未安装 从服务器安装libxml2 提示 libxml.c:3821: error: expected '=', ',', ';', 'asm' or '__att ...

  3. Linux下安装php环境并且配置Nginx支持php-fpm模块

    以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.ph ...

  4. ubuntu下编译安装PHP

    首先配置configure // ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --wit ...

  5. apxs php5,安装PHP5和PHP7

    11.10-11.12 安装PHP5 PHP官网www.php.net 当前主流版本为5.6/7.1 cd /usr/local/src/ #进入到src目录 [root@localhost mysq ...

  6. php 集合安装,centos7安装php5.6报错集合

    错误1:Cannot find OpenSSL's 解决:yum install openssl openssl-devel ln -s /usr/lib64/libssl.so /usr/lib/ ...

  7. Redhat Linux编译安装LAMP环境

    一:准备软件包 存放/home/xiutuo/software/目录下. 主要软件包: 1. httpd-2.2.6.tar.gz 2. mysql-5.0.45-linux-i686-glibc23 ...

  8. LAMP攻略: LAMP环境搭建,Linux下Apache,MySQL,PHP安装与配置

    之前写过一个red hat 9下的LAMP环境的配置,不过由于版本比较旧,很多不适用了. 所以决定写一个新的LAMP环境搭建与配置教程.本配置是在 CentOS-5.3 下 httpd-2.2.11. ...

  9. MediaWiki安装配置(Linux)【转】

    阅读目录 2.1 本例子的安装环境如下: 转自:http://blog.csdn.net/gao36951/article/details/43965527 版权声明:本文为博主原创文章,未经博主允许 ...

最新文章

  1. MTD NANDFLASH驱动相关知识介绍
  2. python建立文件数据库_Python创建CRNN训练用的LMDB数据库文件
  3. 好程序员大数据独家解析-hadoop五大节点
  4. python怎么限制输出精度_谈谈关于Python里面小数点精度控制的问题
  5. 文件指针和文件描述符之间的相互转换 fd----fp 和 fp----fd
  6. Windows 2000缓冲区溢出入门
  7. .iOS APP Project or Mac APP Project编译错误提示: My Mac 64-bit is not valid for Running the scheme...
  8. [转载] python zip 文件解压中文乱码问题解决
  9. ubuntu lvs keepalived mysql_ubuntu下LVS + Keepalived 实现mysql高可用负载均衡实现
  10. html 表格_HTML -- 表格结构
  11. 百度贴吧界面html程序代码,如何把自己的网址转换为百度贴吧网址?
  12. 408计算机考研交流群,考研初试复习经验分享(计算机408)
  13. 集成运算放大器的简要介绍
  14. 工作类书籍之计算机相关
  15. win10卓越性能模式
  16. excel简繁切换_Excel2010如何找回繁转简繁简转换功能
  17. Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answering——论文阅读笔记
  18. 个人收藏夹 html,用h1和段落p 写一个三毛语录
  19. clamav的unrar解压模块加载
  20. 关于试用期的四大认知误区,千万别被渣公司坑了!

热门文章

  1. 软件工程师应具备什么样的素质
  2. 【Zotero高效知识管理】(4)Zotero的文献管理、阅读及笔记知识管理
  3. 对标40亿美金Webflow,「Towify」想用无代码方式搭建小程序
  4. 物联网卡这样设置一下上网全程4G!建议收藏!
  5. idea 界面右侧竖线是什么?怎么关闭?
  6. android 自定义键盘震动,实现android按键震动按键声音的机制
  7. 何为JAVA内部类?
  8. 深信服行为感知命令执行漏洞
  9. 净化实验室设计系统原理是什么样的
  10. ubuntu vi/vim退出文件