1代码
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
void parseDoc(char *filename);
void printChildrenNames(xmlDocPtr doc, xmlNodePtr cur);
//解析xml文件
void parseDoc(char *filename) {
xmlDocPtr doc;
xmlNodePtr cur;
xmlKeepBlanksDefault(0);
//解析文档
doc = xmlParseFile(filename);
if (doc == NULL ) {
fprintf(stderr,"Document not parsed successfully.\n");
return;
}
//获取根结点
cur = xmlDocGetRootElement(doc);
//输出根结点信息
printf("root node=%s\n", cur->name);
if (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return;
}
//打印子结点信息
printChildrenNames(doc, cur);
xmlFreeDoc(doc);
return;
}
//打印子结点信息
void printChildrenNames(xmlDocPtr doc, xmlNodePtr cur) {
xmlChar *key;
xmlChar* attr_value;
if (cur != NULL