libxml官网:http://xmlsoft.org/

下载源码包地址:http://xmlsoft.org/downloads.html

选择版本: wget ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz

tar -xzvf libxml2-2.8.0.tar.gz
./configure --prefix=/usr/local/libxml2    
make && make install

如果出现错误:

cannot remove 'libtoolT': No such file or directory

编辑configure,找到 $RM "$cfgfile" 将其注释即可

$RM "$cfgfile" 将其注释即可

配置path环境(vim /etc/profile,添加内容如下:

#Add bin path
export PATH=$PATH:/usr/local/libxml2/bin

保存修改后,执行:source /etc/profile ; 查看版本:

xml2-config --version

测试代码,x.c

#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 x.c -o x