我这边的libxlm2是安装centOS6.5时自带的, 其默认的头文件的位置是:
/usr/include/libxml2/libxml/
文件如下:
生成xml文件的代码如下:
/****************************************************** * 练习libxml2库,创建通讯录xml文档,新增一个通讯录, * * 如果xml文件存在,则添加一个新节点 * * 如果xml文件不存在,则新建一个xml文件 * * * * @author: xiao5 @date: 2016/01/04 * * ****************************************************/ #include <stdio.h> #include <string.h> #include <unistd.h> #include <assert.h> #include <libxml/parser.h> #include <libxml/tree.h> #include <libxml/xmlmemory.h> #define PHONE_BOOK_FILE "phone_book.xml" // 新增的xml文件的文件名 #define ID_STR_LEN 16 #define NAME_STR_LEN 32 #define TEL_STR_LEN 16 #define ADDR_STR_LEN 128 //电话通讯录结构体 typedef struct phone_t { int id; //编号 char name[NAME_STR_LEN]; //姓名 char tel[TEL_STR_LEN]; //电话 char address[ADDR_STR_LEN]; //地址 }phone; //设置通讯录项 static void set_phone_item(phone *phone_item) { assert(phone_item); // 设置断言,若程序返回错误则终止程序的执行 /* 结构体数据初始化 */ phone_item->id = 10; snprintf(phone_item->name, NAME_STR_LEN, "%s", "刘德华"); snprintf(phone_item->tel, TEL_STR_LEN, "%s", "13018937180"); snprintf(phone_item->address, ADDR_STR_LEN, "%s", "浙江省杭州市上城区凤起路888号中国人民银行浙江省分行"); } //创建phone节点 static xmlNodePtr create_phone_node(const phone *phone_item) { assert(phone_item)