代码很简单,直接贴了。
#include <stdio.h> //author: dengzhaoqun //date: 2012/03/05 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; }