Added nmem_text_node_cdata which takes xmlNode CDATA content and
[yaz-moved-to-github.git] / src / xmlquery.c
index 3dd3007..2323509 100644 (file)
@@ -1,14 +1,13 @@
 /*
- * 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.9 2006-05-02 20:47:45 adam Exp $
  */
 
-/**
- * \file querytostr.c
- * \brief Query / XML conversions
- */
+/** \file xmlquery.c
+    \brief Query / XML conversions
+*/
 
 #include <stdio.h>
 #include <string.h>
@@ -501,19 +500,7 @@ void yaz_xml2query_attribute_element(const xmlNode *ptr,
 
 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,
@@ -787,7 +774,7 @@ static void yaz_xml2query_(const xmlNode *ptr, Z_Query **query, ODR odr,
 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 */