7
void starttag(void *UserData, const XML_Char *name, const XML_Char **attrs) {
11
void endtag(void *UserData, const XML_Char *name) {
15
void texttag(void *UserData, const XML_Char *data, int len) {
16
/* Isn't NULL terminated! Data can be splited in several calls! */
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);
29
void releaseXML(struct TestData *td) {
33
void parseXML(struct TestData *td, unsigned long iter) {
34
enum XML_Status status;
36
status=XML_Parse(doc,td->xml,td->xmllen,1);
38
if (status!=XML_STATUS_OK) {
39
printf("Error parsing XML!\n");
43
if (XML_ParserReset(doc,NULL)==XML_FALSE) {
44
printf("Error reinitialising XML parser!\n");
50
int main(int argc, char *argv[]) {
51
return Test(argc,argv);