在C語言中,XML格式和JSON數(shù)據(jù)之間的轉(zhuǎn)換是非常常見的需求。XML是一種用于數(shù)據(jù)交換和描述的格式,而JSON則是一種輕量級的數(shù)據(jù)交換格式,通常用于前端網(wǎng)頁開發(fā)。
要實(shí)現(xiàn)XML格式轉(zhuǎn)JSON數(shù)據(jù)的功能,我們可以使用第三方庫,如libxml2和cJSON等。以下是使用libxml2和cJSON庫將XML格式轉(zhuǎn)為JSON數(shù)據(jù)的示例代碼:
#include#include #include #include int main() { char* xml = " "; xmlDocPtr doc = xmlParseMemory(xml, strlen(xml)); xmlNodePtr root = xmlDocGetRootElement(doc); cJSON* json = cJSON_CreateObject(); for (xmlNodePtr cur = root->children; cur; cur = cur->next) { if (cur->type == XML_ELEMENT_NODE) { cJSON_AddItemToObject(json, cur->name, cJSON_CreateString(cur->children->content)); } } char* json_str = cJSON_Print(json); printf("%s", json_str); cJSON_Delete(json); xmlFreeDoc(doc); return 0; } 001 Tom 22
以上代碼首先將XML格式的字符串解析為libxml2中的xmlDocPtr類型,再從doc中獲取根節(jié)點(diǎn),并遍歷根節(jié)點(diǎn)下的所有子節(jié)點(diǎn)。當(dāng)遇到節(jié)點(diǎn)為XML_ELEMENT_NODE類型時(shí),即為一個(gè)字段,我們就將其名稱和值添加到cJSON對象中。最后將cJSON對象轉(zhuǎn)換為JSON格式的字符串并輸出即可。