bzr branch
http://darksoft.org/webbzr/xmlbench/trunk
1
by Suren A. Chilingaryan
Initial import |
1 |
#include <stdio.h> |
2 |
#include <sys/time.h> |
|
3 |
#include <expat.h> |
|
4 |
||
5 |
#include "tools.h" |
|
6 |
||
7 |
void starttag(void *UserData, const XML_Char *name, const XML_Char **attrs) { |
|
8 |
return; |
|
9 |
}
|
|
10 |
||
11 |
void endtag(void *UserData, const XML_Char *name) { |
|
12 |
return; |
|
13 |
}
|
|
14 |
||
15 |
void texttag(void *UserData, const XML_Char *data, int len) { |
|
16 |
/* Isn't NULL terminated! Data can be splited in several calls! */
|
|
17 |
return; |
|
18 |
}
|
|
19 |
||
20 |
XML_Parser doc; |
|
21 |
||
22 |
void initXML(struct TestData *td) { |
|
23 |
doc=XML_ParserCreate(NULL); |
|
24 |
XML_SetStartElementHandler(doc,&starttag); |
|
25 |
XML_SetEndElementHandler(doc,&endtag); |
|
26 |
XML_SetCharacterDataHandler(doc,&texttag); |
|
27 |
}
|
|
28 |
||
29 |
void releaseXML(struct TestData *td) { |
|
30 |
XML_ParserFree(doc); |
|
31 |
}
|
|
32 |
||
33 |
void parseXML(struct TestData *td, unsigned long iter) { |
|
34 |
enum XML_Status status; |
|
35 |
||
36 |
status=XML_Parse(doc,td->xml,td->xmllen,1); |
|
37 |
||
38 |
if (status!=XML_STATUS_OK) { |
|
39 |
printf("Error parsing XML!\n"); |
|
40 |
exit(1); |
|
41 |
}
|
|
42 |
||
43 |
if (XML_ParserReset(doc,NULL)==XML_FALSE) { |
|
44 |
printf("Error reinitialising XML parser!\n"); |
|
45 |
exit(1); |
|
46 |
}
|
|
47 |
}
|
|
48 |
||
49 |
||
50 |
int main(int argc, char *argv[]) { |
|
51 |
return Test(argc,argv); |
|
52 |
}
|