xmlDocPtr content_to_xml (const gchar *contents, gsize size) { xmlParserCtxtPtr ctxt; xmlDocPtr doc; ctxt = xmlNewParserCtxt (); ctxt->sax->getEntity = xml_process_entities; doc = xmlSAXParseMemory (ctxt->sax, contents, size, 1); xmlFreeParserCtxt (ctxt); return doc; }
static void f_parse_xml(INT32 args) { xmlDocPtr doc = NULL; switch (THIS->parsing_method) { case PARSE_PUSH_PARSER: Pike_error("Push parser not implemented yet. Please bug [email protected] to implement it."); case PARSE_MEMORY_PARSER: doc = xmlSAXParseMemory(THIS->sax, THIS->input_data->str, THIS->input_data->len, 1); break; case PARSE_FILE_PARSER: doc = xmlSAXParseFileWithData(THIS->sax, THIS->input_data->str, 1, NULL); break; } if ( doc != NULL ) xmlFreeDoc(doc); push_int(0); }