如何用C语言生成简单格式的xml_C 语言

代码很简单,直接贴了。

复制代码 代码如下:

    #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; 
    } 

时间: 2024-12-09 06:47:35

如何用C语言生成简单格式的xml_C 语言的相关文章

extjs中如何用GridPanel显示xml格式的数据

问题描述 extjs中如何用GridPanel显示xml格式的数据 我代码运行时没有报错误,就是显示不出来我要的数据extjs代码如下:Ext.onReady(function(){ //Ext.BLANK_IMAGE_URL=""../Ext/resources/images/default/s.gig""; //记录类型var Person=new Ext.data.Record.create([{name:""id""m

如何用ASP发送html格式的邮件?_编程10000问

如何用ASP发送html格式的邮件? <% Dim objMail Set objMail = CreateObject("CDONTS.Newmail") objMail.TO = "sunchunliang@263.net" objMail.From =shenzhaoyang@intels.net objmail.Subject = "闪亮日子之html撼雪喷云" objMail.MailFormat = cdoMailFormatM

有关简单轮转算法 c语言

问题描述 有关简单轮转算法 c语言 #include #include #define furthest 5 struct process /*PCB STRUCTURE*/ { int id;//进程表示符 int priority;//优先级 int cputime;//占用CPU时间片数 int alltime;//进程所需时间片数 char state;//进程状态 int next; } prochain[furthest]; int procnum;// int rand();//

C++线程池的简单实现方法_C 语言

本文以实例形式较为详细的讲述了C++线程池的简单实现方法.分享给大家供大家参考之用.具体方法如下: 一.几个基本的线程函数: 1.线程操纵函数: int pthread_create(pthread_t *tidp, const pthread_attr_t *attr, (void*)(*start_rtn)(void *), void *arg); //创建 void pthread_exit(void *retval); //终止自身 int pthread_cancel(pthread_

如何用frontpage制作简单的网页

然后,我们打开Frontpage软件,些软件打开如同其它办公软件雷同,我们选择文件菜单栏下的下新建或者是又边的新建空白文本档都行 如果我们要插入一个表格,可以选择菜单栏上的表格>插入>表格,之后就是打开一个表格的属性,设置表格样式. 如果对表格进行属性设置,可以双击表格,或者选中表格,然后右键,选择单元格属性即可打开属性窗口.(Dreamwaever此处就方便一些,在下方有属性可直接设置) 如果想通过布局来规划网站的话,可以选择"表格">布局表格或者单元格, 然后在右

如何用java发送JSON格式的请求到Keystone 给用户加admin角色?

问题描述 我想用java发送json格式的命令到keystone给指定的用户加admin角色,我找到了一个rackspace发布的keystoneAPIextension,其中有"addglobalroletouser"API,网址是:http://docs.rackspace.com/openstack-extensions/auth/OS-KSADM-admin-devguide/content/PUT_addUserRole_v2.0_users__userId__roles_O

如何用四个简单的步骤加速LibreOffice

对于许多许多开源软件的粉丝和支持者来说,LibreOffice 是 Microsoft Office 最好的替代品,在最近的一些发布版本中可以看到它明显有了巨大的改进.然而,初始启动的体验仍然距离期望有所距离.有一些方法可以缩短 LibreOffice 的启动时间并改善它的整体性能. 在下面的段落里,我将会展示一些实用性的步骤,你可以通过它们来改善 LibreOffice 的加载时间和响应能力. 1. 增加每个对象和图像缓存的内存占用 这将可以通过分配更多的内存资源给图像缓存和对象来加快程序的加

如何用四个简单的步骤加速 LibreOffice

对于许多许多开源软件的粉丝和支持者来说,LibreOffice 是 Microsoft Office 最好的替代品,在最近的一些发布版本中可以看到它明显有了巨大的改进.然而,初始启动的体验仍然距离期望有所距离.有一些方法可以缩短 LibreOffice 的启动时间并改善它的整体性能. 在下面的段落里,我将会展示一些实用性的步骤,你可以通过它们来改善 LibreOffice 的加载时间和响应能力. 增加每个对象和图像缓存的内存占用 这将可以通过分配更多的内存资源给图像缓存和对象来加快程序的加载时间

如何用C#生成一个格式固定的Word文档

问题描述 请教各位一个问题:想生成一个公文文档(word),第一页开头内容固定,只是有几个空需要根据内容不同进行填写,页尾内容也是固定,那么只有中间一点空白,根据内容(内容里包含换行,也就是说内容是文章段落),如果过长就在填满中间这部分之后,换到第二页.现在没什么思路,是自己去计算当中所留空白并根据内容截断处理还是有更好的办法,希望得到各位的帮助,有个思路或是方向什么的都行.先行谢过! 解决方案 解决方案二:先弄一个模板,需要更改的部分用自定义的标签代替,例如用"[发文单位]",使用时