/* * Simple SAX example */ #include #include #include static int cb_total = 0; /* * Callback implementations */ static void cb_start_document(void *ctx ATTRIBUTE_UNUSED) { cb_total++; fprintf(stdout, "SAX.startDocument()\n"); } static void cb_end_document(void *ctx ATTRIBUTE_UNUSED) { cb_total++; fprintf(stdout, "SAX.endDocument()\n"); } static void cb_start_element(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name, const xmlChar **atts) { int i; cb_total++; fprintf(stdout, "SAX.startElement(%s", (char *) name); if (atts != NULL) { for (i = 0;(atts[i] != NULL);i++) { fprintf(stdout, ", %s='", atts[i++]); if (atts[i] != NULL) fprintf(stdout, "%s'", atts[i]); } } fprintf(stdout, ")\n"); } static void cb_end_element(void *ctx ATTRIBUTE_UNUSED, const xmlChar *name) { cb_total++; fprintf(stdout, "SAX.endElement(%s)\n", (char *) name); } static void cb_characters(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch, int len) { char output[40]; int i; cb_total++; for (i = 0;(i