1 /* This file is part of the YAZ toolkit.
2 * Copyright (C) 1995-2013 Index Data
3 * See the file LICENSE for details.
7 * \brief XML node creation utilities
16 #include <yaz/wrbuf.h>
18 #include <libxml/parser.h>
19 #include <libxml/tree.h>
22 void add_XML_n(xmlNodePtr ptr, const char *elem, char *val, int len,
27 xmlDocPtr doc = xmlParseMemory(val,len);
30 xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
31 xmlNodePtr t = xmlDocGetRootElement(doc);
32 xmlAddChild(c, xmlCopyNode(t,1));
38 xmlNodePtr add_xsd_string_n(xmlNodePtr ptr, const char *elem, const char *val,
43 xmlNodePtr c = xmlNewChild(ptr, 0, BAD_CAST elem, 0);
44 xmlNodePtr t = xmlNewTextLen(BAD_CAST val, len);
51 xmlNodePtr add_xsd_string_ns(xmlNodePtr ptr, const char *elem, const char *val,
56 xmlNodePtr c = xmlNewChild(ptr, ns_ptr, BAD_CAST elem, 0);
57 xmlNodePtr t = xmlNewText(BAD_CAST val);
64 xmlNodePtr add_xsd_string(xmlNodePtr ptr, const char *elem, const char *val)
66 return add_xsd_string_ns(ptr, elem, val, 0);
69 void add_xsd_integer(xmlNodePtr ptr, const char *elem,
75 sprintf(str, ODR_INT_PRINTF, *val);
76 xmlNewTextChild(ptr, 0, BAD_CAST elem, BAD_CAST str);
85 * c-file-style: "Stroustrup"
86 * indent-tabs-mode: nil
88 * vim: shiftwidth=4 tabstop=8 expandtab