libxml2的安装和使用
安装方法:
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的安装和使用相关推荐
- linux命令行安装libxml,Ubuntu 14.04下libxml2的安装和使用
Ubuntu 14.04下libxml2库的安装方法: sudo apt-get install libxml2 sudo apt-get install libxml2-dev 利用以上命令安装完软 ...
- linux在线安装libxml2,关于linux 安装libxml2
安装php的时候提示libxml2 未安装 从服务器安装libxml2 提示 libxml.c:3821: error: expected '=', ',', ';', 'asm' or '__att ...
- Linux下安装php环境并且配置Nginx支持php-fpm模块
以下以CentOS 7.2为例,安装php的运行环境,首先打开php官网http://php.net/点击导航栏的Downloads进入下载页面:http://php.net/downloads.ph ...
- ubuntu下编译安装PHP
首先配置configure // ./configure --prefix=/usr/local/php5 --with-apxs2=/usr/local/apache2/bin/apxs --wit ...
- 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 ...
- php 集合安装,centos7安装php5.6报错集合
错误1:Cannot find OpenSSL's 解决:yum install openssl openssl-devel ln -s /usr/lib64/libssl.so /usr/lib/ ...
- Redhat Linux编译安装LAMP环境
一:准备软件包 存放/home/xiutuo/software/目录下. 主要软件包: 1. httpd-2.2.6.tar.gz 2. mysql-5.0.45-linux-i686-glibc23 ...
- LAMP攻略: LAMP环境搭建,Linux下Apache,MySQL,PHP安装与配置
之前写过一个red hat 9下的LAMP环境的配置,不过由于版本比较旧,很多不适用了. 所以决定写一个新的LAMP环境搭建与配置教程.本配置是在 CentOS-5.3 下 httpd-2.2.11. ...
- MediaWiki安装配置(Linux)【转】
阅读目录 2.1 本例子的安装环境如下: 转自:http://blog.csdn.net/gao36951/article/details/43965527 版权声明:本文为博主原创文章,未经博主允许 ...
最新文章
- MTD NANDFLASH驱动相关知识介绍
- python建立文件数据库_Python创建CRNN训练用的LMDB数据库文件
- 好程序员大数据独家解析-hadoop五大节点
- python怎么限制输出精度_谈谈关于Python里面小数点精度控制的问题
- 文件指针和文件描述符之间的相互转换 fd----fp 和 fp----fd
- Windows 2000缓冲区溢出入门
- .iOS APP Project or Mac APP Project编译错误提示: My Mac 64-bit is not valid for Running the scheme...
- [转载] python zip 文件解压中文乱码问题解决
- ubuntu lvs keepalived mysql_ubuntu下LVS + Keepalived 实现mysql高可用负载均衡实现
- html 表格_HTML -- 表格结构
- 百度贴吧界面html程序代码,如何把自己的网址转换为百度贴吧网址?
- 408计算机考研交流群,考研初试复习经验分享(计算机408)
- 集成运算放大器的简要介绍
- 工作类书籍之计算机相关
- win10卓越性能模式
- excel简繁切换_Excel2010如何找回繁转简繁简转换功能
- Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answering——论文阅读笔记
- 个人收藏夹 html,用h1和段落p 写一个三毛语录
- clamav的unrar解压模块加载
- 关于试用期的四大认知误区,千万别被渣公司坑了!