58 xmlNodePtr xmlroot = NULL;
60 if (PG_ARGISNULL(0)) PG_RETURN_NULL();
62 xml_input = PG_GETARG_TEXT_P(0);
63 xml = text_to_cstring(xml_input);
64 xml_size = VARSIZE_ANY_EXHDR(xml_input);
67 xmldoc = xmlReadMemory(xml, xml_size, NULL, NULL, XML_PARSE_SAX1);
69 if (!xmldoc || (xmlroot = xmlDocGetRootElement(xmldoc)) == NULL) {
72 lwpgerror(
"invalid MARC21/XML document.");
87 geom = geometry_serialize(lwgeom);
91 PG_RETURN_POINTER(geom);
void lwgeom_free(LWGEOM *geom)
static LWGEOM * parse_marc21(xmlNodePtr xnode)