有时我们需要在c语言里生成一个很小的xml文件,为此去移植一些开源的方案,比如libxml2之类,则有点大炮打文字的感觉。
最好是有个简单的小程序能生成简单的xml就够了。
1.生成简单xml到文件的代码
#include <stdio.h> static FILE *out = NULL; static int tabs = 0; void set_out_fp(FILE *fp) { out = fp; } void put(char *str) { fprintf(out,"%s",str); } void put_head(char *head) { put("<?"); put(head); put("?>n"); } void out_tabs() { int i; for(i=0; i < tabs; i++) { put("t"); } } void tag_start(char *tag) { out_tabs(); put("<"); put(tag); put(">n"); tabs = tabs + 1; } void tag_end(char *tag) { tabs = tabs - 1; out_tabs(); put("</"); put(tag); put(">n"); } void tag_value(char *tag,char *value) { out_tabs(); put("<"); put(tag); put("t"); put(""value"=""); put(value); put("""); put("t/>n"); } void tag_value_num(char *tag,long value) { out_tabs(); put("<"); put(tag); put("t"); put(""value"="); fprintf(out,"%d",value); put("t/>n"); } int main() { FILE *fp = fdopen(1,"a"); set_out_fp(fp); put_head("xml version='1.0' encoding="GBK""); tag_start("投递信息"); tag_start("硬件"); tag_value_num("网卡",1); tag_end("硬件"); tag_end("投递信息"); fclose(fp); return 0; }
2.生成xml到内存的代码
待续 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|