功能:提取html标签中的内容
struct ssc
{
char name[10];
int age;
int heigh;
char school[51];
};
#include <stdio.h>
#include <string.h>
int main()
{
struct ssc st_ssc;
char strXMLBuffer[301];
memset(strXMLBuffer,0,sizeof(strXMLBuffer));
strcpy(strXMLBuffer,"<name>宋同学</name><age>123</age><heigh>234</heigh><school>某某大学</school>");
GetXMLValue(strXMLBuffer,&st_ssc);
printf("name=%s\n",st_ssc.name);
printf("age=%d\n",st_ssc.age);
printf("heigh=%d\n",st_ssc.heigh);
printf("school=%s\n",st_ssc.school);
return 0;
}
int GetXMLBuffer(const char *in_XMLBuffer,const char *in_FieldName,char *out_Value);
int GetXMLBuffer(const char *in_XMLBuffer,const char *in_FieldName,char *out_Value)
{
char b_FieldName[21],e_FieldName[21];
memset(b_FieldName,0,sizeof(b_FieldName));
memset(e_FieldName,0,sizeof(e_FieldName));
sprintf(b_FieldName,"<%s>",in_FieldName);
sprintf(e_FieldName,"</%s>",in_FieldName);
char *start,*end;
start=end=0;
start=strstr(in_XMLBuffer,b_FieldName);
end=strstr(in_XMLBuffer,e_FieldName);
if( (start==0)||(end==0) ) return -1;
strncpy(out_Value,start+strlen(b_FieldName),end-start-strlen(b_FieldName));
return 1;
}
void GetXMLValue(const char *in_XMLBuffer,struct ssc *pst);
void GetXMLValue(const char *in_XMLBuffer,struct ssc *pst)
{
memset(pst,0,sizeof(struct ssc));
GetXMLBuffer(in_XMLBuffer,"name",pst->name);
char str[21];
GetXMLBuffer(in_XMLBuffer,"age",str);
pst->age=atoi(str);
memset(str,0,sizeof(str));
GetXMLBuffer(in_XMLBuffer,"heigh",str);
pst->heigh=atoi(str);
GetXMLBuffer(in_XMLBuffer,"school",pst->school);
}