当前位置: 代码迷 >> 综合 >> libxml2 获取每个节点的值
  详细解决方案

libxml2 获取每个节点的值

热度:77   发布时间:2024-01-04 08:33:08.0

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <libxml2/libxml/xmlmemory.h>
#include <libxml2/libxml/parser.h>
static char nodesXml[30][30] = {0};
int initXml()
{
int i = 0;
char line[200] = {0};
FILE *fp;//打开配置文件句柄
if((fp = fopen("xml.ini","r")) ==NULL)
{
fprintf(stderr, "open xml.ini error\n");
return -1;
}
while(fgets(line,200,fp)!=NULL)
{
Trim(line);
strcpy(nodesXml[i],line);
i++;
}
fclose(fp);
return 0;
}
int parseXML(char* pXml,int length)
{
int i = 0;
xmlDocPtr doc = xmlParseMemory(pXml, length);
xmlNodePtr cur = xmlDocGetRootElement(doc); 
cur = cur->children;
while ( cur != NULL) 
{
xmlChar* key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1); 
printf("【%s = %s】\n",nodesXml[i],key); 
xmlFree(key);
cur = cur->next; 
i++;
}  
}