Welcome 微信登录

首页 / 操作系统 / Linux / Libxml2在Linux下的使用

一、下载和安装LIBXML2
【方法一】Libxml2是个C语言的XML程式库,能简单方便的提供对XML文件的各种操作,并且支持XPATH查询,及部分的支持XSLT转换等功能。Libxml2的下载地址是http://xmlsoft.org/
完全版的库是开源的,并且带有例子程式和说明文件。由于我是在linux下用C语言进行研发的,所以我下载的是libxml2-2.6.20.tar.gz版本的源码包。升级Linux自带libxml2库 在RedHat Linux上安装php-5.2.5 http://www.linuxidc.com/Linux/2008-05/12749.htmUbuntu libxml2 http://www.linuxidc.com/Linux/2007-10/8075.htm具体安装步骤:
1、解压:$tar zxvf libxml2-2.6.20.tar.gz
2、进入解压后的安装目录:$cd libxml2-2.6.20
3、安装三部曲:1)$./configure
              2)$make
              3)$make install
安装完毕。libxml2安装中出现的错误:cannot remove `libtoolT": No such file or directory解决方法:修改configure文件$ vim configure删除这一行: $RM "$cfgfile"重新再运行 $ ./configure 你在安装libxml2的时候,./configure  --prefix=/usr/local
你在安装好后,需要重新定义:
export  LD_LIBRARY_PATH=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
具体的位置根据prefix指定的路径定。 【方法二】#sudo apt-get install libxml2#sudo apt-get install libxml2-dev 【方法三】libxml2 安装使用 收藏  在项目中需要对数据的保存与交换,为了方便期间使用普通文本保存。但对文本解析时,考虑到程序的健壮性就需要处理多种意外情况,比较麻烦,因此对xml产生了点兴趣。xml本身网站上有大把的资料,可以随时参考。   Gnome项目提供了一个xml的C解析器:Libxml2。libxml2最新提供了xmlreader接口,使用很方便,不过版本在2.6以上才支持。今天倒腾了一了下,做了下简单测试,在编译自己的小程序上被拌了一下,写文纪念。   现在的最新版本是2.6.30,可以到http://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6/ 下载。  安装很简单,三部走。// install#./configure#make#make install//test install#make tests//uninstall#make uninstall   如果不需要特别的定制,在configure阶段可以直接默认。 libxml2将默认把头文件与库安装在/usr/local/include/libxml2/libxml目录下。因此可能会让你在第一次编译自己的程序时遇到头文件“no such file”的错误(比如我自己就这么笨╮(╯▽╰)╭)。   libxml2提供了解决方法,它很体贴地在/usr/local/bin目录下为您提供了xml2-config、xmlcatalog、xmllint三个便利的工具(嘀咕下:其实一点都不便利,提前给人说下多好啊,还得害人去查资料)。其中xml2-config在编译时用得到。   xml2-config可以。。。自己看下面吧[root@Amanda ~]# xml2-configUsage: xml2-config [OPTION]Known values for OPTION are:  --prefix=DIR          change libxml prefix [default /usr/local]  --exec-prefix=DIR    change libxml exec prefix [default /usr/local]  --libs                print library linking information  --cflags              print pre-processor and compiler flags  --modules            module support enabled  --help                display this help and exit  --version            output version information  这里说到编译时用到的参数: --cflags和--libs,帮助上说明这个为工程编译时提供辅助。它们提供的信息如下: [root@Amanda ~]# xml2-config --cflags-I/usr/local/include/libxml2[root@Amanda ~]# xml2-config --libs-L/usr/local/lib -lxml2 -lz -lm 所以在编译自己的测试程序时,可以直接使用 #gcc -I /usr/local/include/libxml2 -L/usr/local/lib -lxml2 -lz -lm  -o test test.c 。 或者加入到makefile中,例如:CFLAGS=`xml2-config --cflags`LIBS=`xml2-config --libs` 测试程序:#include <stdio.h>#include <libxml/parser.h>#include <libxml/tree.h>int main(int argc, char **argv){  xmlDocPtr doc = NULL;  xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;  doc = xmlNewDoc(BAD_CAST "1.0");  root_node = xmlNewNode(NULL, BAD_CAST "root");  xmlDocSetRootElement(doc, root_node);  xmlNewChild(root_node, NULL, BAD_CAST "node1",BAD_CAST "content of node1");  node=xmlNewChild(root_node, NULL, BAD_CAST "node3",BAD_CAST"node has attributes");  xmlNewProp(node, BAD_CAST "attribute", BAD_CAST "yes");  node = xmlNewNode(NULL, BAD_CAST "node4");  node1 = xmlNewText(BAD_CAST"other way to create content");  xmlAddChild(node, node1);  xmlAddChild(root_node, node);  xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", doc, "UTF-8", 1);  xmlFreeDoc(doc);  xmlCleanupParser();  xmlMemoryDump();     return(0);} 用下面的命令编译通过。 gcc -I /usr/local/include/libxml2  -L /usr/local/lib -lxml2 test.c -o test
  • 1
  • 2
  • 3
  • 4
  • 下一页
Fedora 17中systemd系统和服务管理器使用Putty和SSH访问你的OpenShift程序相关资讯      libxml2 
  • Libxml2 "xmlsave.c"拒绝服务漏洞  (今 20:54)
  • libxml2 格式字符串漏洞(CVE-2016-  (06月12日)
  • libxml2 parser.c拒绝服务漏洞(CVE  (05月19日)
  • libxml2 xmlStringLenDecodeEntiti  (06月12日)
  • libxml2 xmlParseElementDecl拒绝  (06月12日)
  • libxml2 xmlStringGetNodeList函数  (05月19日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任