xml学习

一,数据类型
xmlChar 
  对char的基本代替,是一个UTF-8编码字符串中的一个字节。如果你的数据使用了其他编码,在使用libxml函数前就必须转换为UTF-8。
xmlDoc和xmlDocPtr
  是一个包含了从解析文档后创建出的树的结构。xmlDocPtr是指向该结构的指针。
xmlNode和xmlNodePtr 
  包含单个节点的结构。xmlNodePtr是指向该结构的指针,它用来遍历文档树。
。。。。
 
 
二,常用函数
xmlDocPtr xmlParseFile(char *filename)       // 解析文件
char *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine)  //获取具体内容
 
xmlStrcmp(const CHAR *str1, const CHAR *str2)
。。。。
 
三,实例

 

 1 {
 2  xmlDocPtr doc;
 3  xmlChar *value;
 4  doc = xmlParseFile(filename);
 5  if (NULL == doc) {
 6      printf( "[GUI]XML Document '%s' parse error.\n", filename);
 7      return -1; 
 8  }
 9 
10  xmlNodePtr root = doc->root;
11  if (root == NULL) {
12      printf( "[GUI]XML Document empty\n");
13      xmlFreeDoc(doc);
14      return -1;
15  }
16  if(doc->encoding) {
17      value = (xmlChar *)doc->encoding;
18      if(0 == xmlStrcmp((const CHAR *)"utf8", (const CHAR *)value)) {
19          printf("[GUI] xml encoding utf8");
20   } 
21  }
22 
23  xmlNodePtr cur = root->xmlChildrenNode;
24  while (cur) {
25     if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {
26      key = xmlNodeListGetString(cur->doc, cur->xmlChildrenNode, 1); 
27      printf("keyword: %s\n", key);
28      xmlFree(key);
29    } 
30    cur = cur->next;
31  }
32     return;
33 
34 }

 

 
 
 

 

posted @ 2016-08-03 15:49  chencesc  阅读(415)  评论(0编辑  收藏  举报