* Copyright (C) 2005-2006, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: record_conv.c,v 1.8 2006-05-08 16:58:25 quinn Exp $
+ * $Id: record_conv.c,v 1.10 2006-05-26 15:07:08 adam Exp $
*/
/**
* \file record_conv.c
xmlDocPtr res = xsltApplyStylesheet(r->u.xslt.xsp, doc, 0);
if (res)
{
- xmlChar *out_buf;
+ xmlChar *out_buf = 0;
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);
+#if HAVE_XSLTSAVERESULTTOSTRING
+ xsltSaveResultToString(&out_buf, &out_len, res,
+ r->u.xslt.xsp);
+#else
+ xmlDocDumpFormatMemory (res, &out_buf, &out_len, 1);
+#endif
+ if (!out_buf)
+ {
+ wrbuf_printf(p->wr_error,
+ "xsltSaveResultToString failed");
+ ret = -1;
+ }
+ else
+ {
+ 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");
+ wrbuf_printf(p->wr_error, "xsltApplyStylesheet failed");
ret = -1;
}
xmlFreeDoc(doc);