在進行數據交換時,常常需要將不同格式的文件進行轉換,例如將XML文件轉換為JSON格式。本文介紹如何使用C語言實現XML到JSON格式的轉換。
在C語言中,我們可以使用第三方庫libxml2來解析XML文件,然后使用第三方庫cJSON將解析結果轉換為JSON格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <libxml/parser.h> #include <libxml/tree.h> #include <cjson/cJSON.h> int main(int argc, char **argv) { xmlDocPtr doc; xmlNodePtr root, cur; cJSON *json, *json_array; char *json_string; // 打開XML文件 doc = xmlReadFile("example.xml", NULL, 0); if (doc == NULL) { printf("Error: cannot open XML file\n"); return -1; } // 獲取根節點 root = xmlDocGetRootElement(doc); // 創建JSON對象和JSON數組對象 json = cJSON_CreateObject(); json_array = cJSON_CreateArray(); // 遍歷XML文件 for (cur = root->xmlChildrenNode; cur != NULL; cur = cur->next) { if (cur->type == XML_ELEMENT_NODE) { // 將XML節點的名稱和內容轉換為JSON格式 cJSON_AddItemToObject(json, (const char *)cur->name, cJSON_CreateString((const char *)xmlNodeGetContent(cur))); cJSON_AddItemToArray(json_array, cJSON_CreateString((const char *)xmlNodeGetContent(cur))); } } // 轉換JSON對象為JSON字符串 json_string = cJSON_Print(json); // 輸出JSON字符串 printf("%s", json_string); // 釋放內存 cJSON_Delete(json); xmlFreeDoc(doc); xmlCleanupParser(); free(json_string); return 0; }
以上代碼演示了如何使用C語言將XML文件轉換為JSON格式。其中,使用libxml2庫解析XML文件,并使用cJSON庫創建JSON對象和JSON數組對象,最后將JSON對象轉換為JSON字符串輸出。
需要注意的是,在運行以上代碼之前,需要安裝并配置好libxml2和cJSON庫。
上一篇vue商品列表加載
下一篇python 顯示在運行