From 1e318e18387950b93e6a70087bdd2be91da000ac Mon Sep 17 00:00:00 2001 From: Arun Muthusamy <arun.muthusamy@inteno.se> Date: Thu, 7 Jun 2018 17:17:26 +0200 Subject: [PATCH] fix xml_to_json --- common.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/common.c b/common.c index d0dd10b..efc7570 100644 --- a/common.c +++ b/common.c @@ -102,10 +102,10 @@ leave: return NULL; } -void xml_to_json(xmlNode *anode, struct json_object *jobj) +void xml_to_json(xmlNode *anode, json_object *jobj) { xmlNodePtr cur_node = NULL; - struct json_object *cur_jstr = NULL; + json_object *cur_jstr = NULL; for (cur_node = anode; cur_node; cur_node = cur_node->next) { debug_print("child address: %p\n", cur_node); @@ -115,10 +115,7 @@ void xml_to_json(xmlNode *anode, struct json_object *jobj) if (cur_node->type == XML_ELEMENT_NODE) { if (xmlChildElementCount(cur_node) == 0) { cur_jstr = json_object_new_string((char *)xmlNodeGetContent(cur_node)); - - debug_print("xmlNodeGet name: %sn", (char *)cur_node->name); - debug_print("xmlNodeGetContent: %sn", (char *)xmlNodeGetContent(cur_node)); - + debug_print("xmlNodeGet name: %s\n", (char *)cur_node->name); json_object_object_add(jobj, (char *)cur_node->name, cur_jstr); } } @@ -130,13 +127,14 @@ void xml_to_json(xmlNode *anode, struct json_object *jobj) //free memory... struct json_object *xml_to_json_converter(struct write_result *result) { - struct json_object *jobj; + json_object *jobj; xmlDocPtr doc_ptr = NULL; xmlNode *origin_node = NULL; doc_ptr = xmlParseMemory(result->data, result->pos); if (!doc_ptr) goto fail_doc_ptr; + debug_print("data from xml: %s\n", result->data); origin_node = xmlDocGetRootElement(doc_ptr); if (!origin_node) @@ -145,12 +143,10 @@ struct json_object *xml_to_json_converter(struct write_result *result) jobj = json_object_new_object(); xml_to_json(origin_node, jobj); - debug_print("The json object created: %s\n", json_object_to_json_string(jobj)); + debug_print("Json object from xml: %s\n", json_object_to_json_string(jobj)); if (doc_ptr) xmlFreeDoc(doc_ptr); - if (origin_node) - free (origin_node); return jobj; -- GitLab