如何用C語言生成簡單格式的xml
更新時(shí)間:2013年05月27日 17:40:35 作者:
本篇文章是對(duì)使用C語言生成簡單格式的xml的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
代碼很簡單,直接貼了。
#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語言中的char數(shù)據(jù)類型及其與int類型的轉(zhuǎn)換
這篇文章主要介紹了詳解C語言中的char數(shù)據(jù)類型及其與int類型的轉(zhuǎn)換,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-08-08
C語言數(shù)據(jù)結(jié)構(gòu)與算法之排序總結(jié)(二)
這篇文章住要介紹的是選擇類排序中的簡單、樹形和堆排序,歸并排序、分配類排序的基數(shù)排序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2021-12-12
c++之std::get_time和std::put_time
std::get_time和std::put_time是C++中用于日期和時(shí)間的格式化和解析的函數(shù),它們都包含在<iomanip>頭文件中,std::get_time用于從輸入流中解析日期時(shí)間字符串,而std::put_time則用于將std::tm結(jié)構(gòu)格式化為字符串2024-10-10
基于MFC實(shí)現(xiàn)單個(gè)文檔的文件讀寫
這篇文章主要為大家詳細(xì)介紹了如何基于MFC實(shí)現(xiàn)單個(gè)文檔的文件讀寫功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,感興趣的可以了解一下2022-07-07
淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼
這篇文章主要介紹了淺談使用C++多級(jí)指針存儲(chǔ)海量qq號(hào)和密碼,分享了相關(guān)實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實(shí)例
這篇文章主要介紹了C語言數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的簡單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06

