Beispiel #1
0
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);
}