+++ /dev/null
-#include <stdio.h>
-#include <sys/time.h>
-#include <expat.h>
-
-static void XMLCALL
-startElement(void *userData, const char *name, const char **atts) { return; }
-
-static void XMLCALL
-endElement(void *userData, const char *name) { return; }
-
-static void XMLCALL
-characterData(void *userData, const char *s, int len) { return; }
-
-static void XMLCALL
-startCdata(void *userData) { return; }
-
-static void XMLCALL
-endCdata(void *userData) { return; }
-
-int
-main(int argc, char *argv[])
-{
- char buf[BUFSIZ];
- int done;
- FILE *xmlfile = stdin;
- struct timeval timing1, timing2;
- XML_Parser parser = XML_ParserCreateNS(NULL,' ');
- XML_SetElementHandler(parser, startElement, endElement);
- XML_SetCharacterDataHandler(parser, characterData);
- XML_SetCdataSectionHandler(parser, startCdata, endCdata);
- gettimeofday(&timing1, NULL);
- do {
- size_t len = fread(buf, 1, sizeof(buf), xmlfile);
- done = len < sizeof(buf);
- if (XML_Parse(parser, buf, len, done) == XML_STATUS_ERROR) {
- fprintf(stderr,
- "%s at line %d\n",
- XML_ErrorString(XML_GetErrorCode(parser)),
- XML_GetCurrentLineNumber(parser));
- return 1;
- }
- } while (!done);
- gettimeofday(&timing2, NULL) != 0;
- XML_ParserFree(parser);
- fprintf(stdout, "%d\n",
- ((timing2.tv_sec * 1000000 + timing2.tv_usec) -
- (timing1.tv_sec * 1000000 + timing1.tv_usec)) / 1000);
- return 0;
-}
-