/*
- * Copyright (C) 1995-2005, Index Data ApS
+ * Copyright (C) 1995-2006, Index Data ApS
* All rights reserved.
*
- * $Id: xmlquery.c,v 1.5 2006-02-23 11:17:25 adam Exp $
+ * $Id: xmlquery.c,v 1.10 2006-07-06 10:17:54 adam Exp $
*/
-/**
- * \file querytostr.c
- * \brief Query / XML conversions
- */
+/** \file xmlquery.c
+ \brief Query / XML conversions
+*/
#include <stdio.h>
#include <string.h>
#include <assert.h>
-#if HAVE_XML2
+#if YAZ_HAVE_XML2
#include <libxml/parser.h>
#include <libxml/tree.h>
return 0;
}
-void yaz_rpnquery2xml(const Z_RPNQuery *rpn, void *docp_void)
+void yaz_rpnquery2xml(const Z_RPNQuery *rpn, xmlDocPtr *docp)
{
Z_Query query;
query.which = Z_Query_type_1;
query.u.type_1 = (Z_RPNQuery *) rpn;
- yaz_query2xml(&query, docp_void);
+ yaz_query2xml(&query, docp);
}
-void yaz_query2xml(const Z_Query *q, void *docp_void)
+void yaz_query2xml(const Z_Query *q, xmlDocPtr *docp)
{
- xmlDocPtr *docp = (xmlDocPtr *) docp_void;
xmlNodePtr top_node, q_node = 0, child_node = 0;
assert(q);
char *strVal(const xmlNode *ptr_cdata, ODR odr)
{
- char *cdata;
- int len = 0;
- const xmlNode *ptr;
-
- for (ptr = ptr_cdata; ptr; ptr = ptr->next)
- if (ptr->type == XML_TEXT_NODE)
- len += xmlStrlen(ptr->content);
- cdata = (char *) odr_malloc(odr, len+1);
- *cdata = '\0';
- for (ptr = ptr_cdata; ptr; ptr = ptr->next)
- if (ptr->type == XML_TEXT_NODE)
- strcat(cdata, (const char *) ptr->content);
- return cdata;
+ return nmem_text_node_cdata(ptr_cdata, odr->mem);
}
void yaz_xml2query_term(const xmlNode *ptr,
void yaz_xml2query(const void *xmlnodep, Z_Query **query, ODR odr,
int *error_code, const char **addinfo)
{
- return yaz_xml2query_(xmlnodep, query, odr, error_code, addinfo);
+ yaz_xml2query_(xmlnodep, query, odr, error_code, addinfo);
}
-/* HAVE_XML2 */
+/* YAZ_HAVE_XML2 */
#endif
/*