Chinaunix首页 | 论坛 | 博客
  • 博客访问: 138710
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 247
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-12 22:24
个人简介

学霸

文章分类

全部博文(20)

文章存档

2016年(1)

2015年(11)

2014年(8)

我的朋友

分类: C/C++

2014-07-29 16:54:24

1.install 
  download url:
  cd libxml2-2.9.2
 ./autogen.sh  //the same with configure
  make && make install
2.example(get all content of an xml file)
  
点击(此处)折叠或打开
  1. xmlDocPtr doc = NULL;
  2.   xmlNodePtr cur,cur_next;
  3.   xmlChar *key;

  4.   doc = xmlReadFile("normal.xml", "utf-8", XML_PARSE_RECOVER);
  5.   if (doc == NULL)
  6.   {
  7.      fprintf(stderr,"Document not parsed successfully. \n");
  8.      return 1;
  9.   }
  10.   cur = xmlDocGetRootElement(doc);
  11.   if (cur == NULL)
  12.   {
  13.      fprintf(stderr,"empty document\n");
  14.      xmlFreeDoc(doc);
  15.      return 1;
  16.   }

  17.   while(NULL != cur)
  18.   {
  19.     /* get all content */
  20.     if(0 == xmlChildElementCount(cur) && NULL != (key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1)))
  21.       printf("%s:%s\n",cur->name,key);

  22.     cur_next = xmlFirstElementChild(cur);
  23.     if(NULL == cur_next)
  24.       cur_next = xmlNextElementSibling(cur);

  25.     while(NULL == cur_next)
  26.     {
  27.       cur = cur->parent;
  28.       if(NULL == cur)
  29.         break;
  30.       cur_next = xmlNextElementSibling(cur);
  31.     }

  32.     cur = cur_next;
  33.   }

  34.   xmlFreeDoc(doc);

3.compile
 gcc -I /usr/local/include/libxml2/ -L /usr/local/lib -lxml2 t.c -o t -g
阅读(1441) | 评论(0) | 转发(0) |
0

上一篇:c易忽略基础

下一篇:SNMP报文解析

给主人留下些什么吧!~~