- if (r->which == YAZ_RECORD_CONV_RULE_XSLT)
- {
- xmlDocPtr doc = xmlParseMemory(wrbuf_buf(record),
- wrbuf_len(record));
- if (!doc)
- {
- wrbuf_printf(p->wr_error, "xmlParseMemory failed");
- ret = -1;
- }
- else
- {
- xmlDocPtr res = xsltApplyStylesheet(r->u.xslt.xsp, doc, 0);
- if (res)
- {
- xmlChar *out_buf;
- int out_len;
- xmlDocDumpFormatMemory (res, &out_buf, &out_len, 1);
-
- wrbuf_rewind(record);
- wrbuf_write(record, (const char *) out_buf, out_len);
-
- xmlFree(out_buf);
- xmlFreeDoc(res);
- }
- else
- {
- wrbuf_printf(p->wr_error, "xsltApplyStylesheet faailed");
- ret = -1;
- }
- xmlFreeDoc(doc);
- }
- }
- else if (r->which == YAZ_RECORD_CONV_RULE_MARC)