在C語言中,我們有時需要將XML格式的數據轉換成JSON格式,以便于使用。下面是一段示例代碼,展示了如何將XML數據解析成JSON格式。
// 定義XML數據,這里使用字符串 char xml_data[] = ""; // 定義JSON數據 char* json_data; // 創建XML文檔對象 xmlDocPtr doc = xmlParseDoc((xmlChar*)xml_data); if (doc == NULL) { // 解析失敗 return 0; } // 獲取XML文檔根節點 xmlNodePtr root = xmlDocGetRootElement(doc); // 創建JSON對象和數組 json_object* json = json_object_new_object(); json_object* array = json_object_new_array(); // 遍歷XML節點 xmlNodePtr cur = root->xmlChildrenNode; while (cur != NULL) { if (cur->type == XML_ELEMENT_NODE) { // 獲取節點名稱和節點值 char* name = (char*)cur->name; char* value = (char*)xmlNodeGetContent(cur); // 將節點轉換成JSON格式 json_object* item = json_object_new_object(); json_object_object_add(item, "name", json_object_new_string(name)); json_object_object_add(item, "value", json_object_new_string(value)); // 將轉換后的節點添加到JSON數組中 json_object_array_add(array, item); // 釋放內存 xmlFree(value); } cur = cur->next; } // 將JSON數組添加到JSON對象中 json_object_object_add(json, "nodes", array); // 將JSON對象轉換成字符串并打印 json_data = strdup(json_object_to_json_string(json)); printf("%s", json_data); // 釋放內存 xmlFreeDoc(doc); json_object_put(json); free(json_data); 張三 18
通過上面的代碼,我們可以將XML數據轉換成JSON格式,以便于使用。使用C語言中的XML解析庫,可以很方便地進行XML解析和轉換成JSON格式。