欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c將xml轉為json代碼

林玟書2年前9瀏覽0評論

在現今互聯網時代,xml和json是常見的數據交換格式,而很多時候我們需要將xml轉換為json格式來適配某些應用程序。今天我們來學習使用C語言編寫一個將xml轉成json的函數。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void xml2json(char* xml, char* json){
char* token;
char* substr;
char* ptr;
char* s = calloc(strlen(xml)+1, sizeof(char));
int indent = 0;
strcat(s, "{\n");
token = strtok(xml, "\n");
while(token != NULL){
substr = strstr(token, "<");
if(substr != NULL){
ptr = strstr(substr, ">");
if(*(ptr-1) == '/'){
substr = NULL;
ptr = NULL;
}
}
if(substr != NULL){
if(substr != xml){
strcat(s, "\n");
}
for(int i=0; i<indent+4; i++){
strcat(s, " ");
}
strncat(s, substr+1, ptr-substr-1);
strcat(s, ": ");
if(*(ptr+1) != '<'){
strncat(s, ptr+1, strstr(ptr, "</")-ptr-1);
strcat(s, ",");
token = strstr(ptr, "</");
}else{
indent += 4;
strcat(s, "{\n");
token = strtok(NULL, "\n");
continue;
}
}else{
if(*(token-1) == '/'){
strcat(s, ",");
token++;
}
if(indent == 0){
break;
}
strcat(s, "\n");
for(int i=0; i<indent; i++){
strcat(s, " ");
}
strcat(s, "}");
indent -= 4;
}
token = strtok(NULL, "\n");
}
strcat(s, "\n}");
strcpy(json, s);
free(s);
}
int main(){
char* xml = "<person>\n"
"    <name>John</name>\n"
"    <age>25</age>\n"
"</person>";
char json[1024];
xml2json(xml, json);
printf("%s", json);
return 0;
}

以上是一個簡單的xml轉json函數示例,適用于一些簡單的xml格式數據轉換,如果需要處理復雜的xml格式,還需要進一步完善代碼。