static void expat_cb_end_element(void *user_data, const char *elem) { int ns_len; const char *real_elem, *ns; struct exmpp_xml_data *edd; edd = (struct exmpp_xml_data *)user_data; /* With Expat, we must extract the namespace from the element's * name. */ real_elem = strchr(elem, NS_SEP); if (real_elem != NULL) { /* This element has a namespace. */ ns = elem; ns_len = real_elem - elem; real_elem++; } else { ns = NULL; ns_len = 0; real_elem = elem; } exit_element(&edd->ctx, ns, ns_len, real_elem, strlen(real_elem)); }
static void libxml2_cb_end_element(void *user_data, const xmlChar *elem, const xmlChar *prefix, const xmlChar *ns) { struct exmpp_xml_data *edd; edd = (struct exmpp_xml_data *)user_data; exit_element(&edd->ctx, (char *)ns, -1, (char *)elem, -1); }