用expat解析包解析XML文件
发布时间:2020-12-15 23:14:35 所属栏目:百科 来源:网络整理
导读:要了解如何使用expat XML解析器之前,先来仔细地分析一下怎么样使用expat库的小例子,看看具体调用了那些接口函数,是否会很复杂的呢?‘它的例子程序如下: #001 #013 #014 下面包括输出文件和库文件头。 #015 #include stdio.h #016 #include "xmlparse.h"
要了解如何使用expat XML解析器之前,先来仔细地分析一下怎么样使用expat库的小例子,看看具体调用了那些接口函数,是否会很复杂的呢?‘它的例子程序如下:
#001 #013 #014 #015 #include <stdio.h> #016 #include "xmlparse.h" #017 #018 #define BUFFSIZE 8192 #019 #020 char Buff[BUFFSIZE]; #021 #023 #024 void #025 start(void *data,const char *el,const char **attr) { #026 int i; #027 #029 printf(" "); #030 #032 #034 printf(" %s='%s'",attr[i],attr[i + 1]); #035 } #036 #038 Depth++; #039 } #040 #041 void #042 end(void *data,const char *el) { #043 Depth--; #044 } #045 #046 void #047 main(int argc,char **argv) { 创建一个XML分析器。 #048 XML_Parser p = XML_ParserCreate(NULL); 下面判断是否创建XML分析器失败。 #049 if (! p) { #050 fprintf(stderr,"Couldn't allocate memory for parsern"); #051 exit(-1); #052 } #053 #054 XML_SetElementHandler(p,start,end); #055 #056 for (;;) { #057 int done; #058 int len; #059 #060 len = fread(Buff,1,BUFFSIZE,stdin); 读取文件出错就退出。 #061 if (ferror(stdin)) { #062 fprintf(stderr,"Read errorn"); #063 exit(-1); #064 } 判断是否读取文件到结束。 #065 done = feof(stdin); #066 #067 if (! XML_Parse(p,Buff,len,done)) { #068 fprintf(stderr,"Parse error at line %d:n%sn", #069 XML_GetCurrentLineNumber(p),180)">#070 XML_ErrorString(XML_GetErrorCode(p))); #071 exit(-1); #072 } #073 #074 if (done) #075 break; #076 } #077 } #078 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |