如何用C語(yǔ)言生成簡(jiǎn)單格式的xml
更新時(shí)間:2013年05月27日 17:40:35 作者:
本篇文章是對(duì)使用C語(yǔ)言生成簡(jiǎn)單格式的xml的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
代碼很簡(jiǎn)單,直接貼了。
#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("網(wǎng)卡", 1);
tag_end("硬件");
tag_end("投遞信息");
fclose(fp);
return 0;
}
復(fù)制代碼 代碼如下:
#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("網(wǎng)卡", 1);
tag_end("硬件");
tag_end("投遞信息");
fclose(fp);
return 0;
}
相關(guān)文章
C++服務(wù)器和客戶端交互的項(xiàng)目實(shí)踐
本文主要介紹了C++服務(wù)器和客戶端交互的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07淺談十進(jìn)制小數(shù)和二進(jìn)制小數(shù)之間的轉(zhuǎn)換
下面小編就為大家?guī)?lái)一篇淺談十進(jìn)制小數(shù)和二進(jìn)制小數(shù)之間的轉(zhuǎn)換。小編覺得挺不錯(cuò)的現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01C++實(shí)現(xiàn)班級(jí)成績(jī)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)班級(jí)成績(jī)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02詳解C語(yǔ)言內(nèi)核中的自旋鎖結(jié)構(gòu)
自旋鎖是內(nèi)核中提供的一種高IRQL鎖,用同步以及獨(dú)占的方式訪問(wèn)某個(gè)資源。自旋鎖是為了解決內(nèi)核鏈表讀寫時(shí)存在線程同步問(wèn)題。本文將講解一下自旋鎖的簡(jiǎn)單應(yīng)用,感興趣的可以了解一下2022-09-09