1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include <expat.h>
#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;
void startElement(void *userData, const char *name, const char **atts) {
int i;
cerr << name << endl;
for (i=0; atts[i] ; i+=2)
cerr << atts[i] <<endl;
}
void endElement(void *userData, const char *name) {
cerr << name;
}
int main(void) {
filebuf *fbuf;
long size;
char *buffer;
ifstream file_in("test.xml", ios::in);
XML_Parser parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, NULL);
XML_SetElementHandler(parser, startElement, endElement);
fbuf = file_in.rdbuf();
size = fbuf->pubseekoff (0,ios::end,ios::in);
fbuf->pubseekpos (0,ios::in);
buffer = new char[size];
fbuf->sgetn (buffer, size);
XML_Parse(parser, buffer, size, NULL);
file_in.close();
XML_ParserFree(parser);
free(buffer);
} |
Partager