如何用C语言生成简单格式的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; 
    }

(0)

相关推荐

  • linux安装mysql和使用c语言操作数据库的方法 c语言连接mysql

    1. MySQL的安装与配置: 在Ubuntu下安装MySQL方法很简单,使用如下命令: 复制代码 代码如下: sudo apt-get install mysql-server 安装的过程中系统会提示设置root密码,此过程可以跳过,但是建议在安装时提示设置root密码的时候自行设置,免得后面设置麻烦.安装结束之后,系统会启动mysql服务,可以使用命令去查看来验证mysql服务是否已经安装成功: 复制代码 代码如下: ps -el | grep mysql 如果mysql服务没有正常的运行,

  • linux c语言操作数据库(连接sqlite数据库)

    复制代码 代码如下: #include<stdio.h>#include<sqlite3.h> int select_callback(void *data,int col_count,char **col_values,char **col_name){    //每条记录回调一次该函数,有多少条就回调多少次    int i;    for(i=0;i<col_count;i++)    {        printf("%s=%s\n",col_na

  • c++连接mysql数据库的两种方法(ADO连接和mysql api连接)

    第一种方法可以实现我当前的需求,通过连接不同的字符串来连接不同的数据库.暂时只连接了mysql,sqlserver,oracle,access.对于access,因为它创建表的SQL语句不太兼容标准SQL语句,需要做一些处理,这里暂时不说.第二种方法只能针对于mysql数据库的连接,不过用这种方法不用安装MyODBC服务器程序. 不管用哪种方法,首先需要安装Mysql数据库,安装方法请看"mysql安装及一些注意点".最好安装一个Navicat for mysql,方便操作mysql数

  • c语言连接mysql数据库的实现方法

    我这里也有一份网上找到的:/201205/other/C_link_mySql51.rar C连接MySql5.1所需文件.rar 附带一个不错的例子: #include <string.h> #include <stdlib.h> #include <stdio.h> #include <winsock2.h> #include <mysql/mysql.h>/*注意要包含这个头文件*/ #pragma comment(lib,"li

  • C语言连接并操作Sedna XML数据库的方法

    本文实例讲述了C语言连接并操作Sedna XML数据库的方法.分享给大家供大家参考.具体如下: #include "libsedna.h" #include "stdio.h" int handle_error(SednaConnection* conn, const char* op, int close_connection) { printf("%s failed: \n%s\n", op, SEgetLastErrorMsg(conn))

  • 如何用C语言生成简单格式的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

  • shell生成简单格式的xml实例

    以下是shell代码: create_xml.sh 复制代码 代码如下: #! /bin/bash #author: dengzhaoqun #date: 201202/14 outfile=out tabs=0 put(){  echo '<'${*}'>' >> $outfile } put_head(){  put '?'${1}'?' } out_tabs(){  tmp=0  tabsstr=""  while [ $tmp -lt $((tabs))

  • PHP简单实现解析xml为数组的方法

    本文实例讲述了PHP简单实现解析xml为数组的方法.分享给大家供大家参考,具体如下: 最近想要做一个插件机制,需要用到xml,在解析xml时候需要转换为数组,特意记录一个此种解析方式 xmlDemo.xml文件: <?xml version="1.0" encoding="UTF-8"?> <main xmlns="http://www.xiaoetongo.cn" versionCode="1.0">

  • 如何用ASP发送html格式的邮件?

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

  • java实现利用String类的简单方法读取xml文件中某个标签中的内容

    1.利用String类提供的indexOf()和substring()快速的获得某个文件中的特定内容 public static void main(String[] args) { // 测试某个词出现的位置 String reqMessage = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>" + "<in>" + "<head&g

  • 如何用JS实现简单的数据监听

    概述 主要是用Object.defineProperty实现类似vue的数据绑定. 第一步 const data = { name: "tom", age: 14 } Object.defineProperty(data, "name", { get(){ return "name被读取了" }, set(val){ console.log('我被赋值了',val) } }) //将此代码放到浏览器控制台查看效果 console.log(data

  • 如何用PHP编写简单的api数据接口

    一.编写接口所需几样工具或软件(均是win7+64位) 1.phpStudy.SQLyog和编码工具(sublime text/webStorm/vs code均可,按自己习惯来): 2.安装好phpStudy之后,打开软件,点击启动:如果Apache和MySQL右边的显示都是绿色的,那么说明服务启动成功:另外注意一下开始的PHP服务版本,因为不同的版本对应不同node.js版本或SQLyog版本,如果开启不了,则自行百度解决,一般都是要下载对应支持的VC9(分32位和64位)或VC11(分32

  • 一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.Linq; using System.Xml; using System.Xml.Linq; namespace WebApplication3 { public

  • spring接口通过配置支持返回多种格式(xml,json,html,excel)

    1. 简介 本文主要给大家介绍使用SpringMVC的后端服务如何通过配置来支持多种返回值类型(xml,json,html,excel) 这里的代码使用的是springboot,下载地址:https://github.com/xiagn825/springboot-todolist/tree/springboot-ContentNegotiation 2. 基础概念 2.1 HttpHeader中Content-Type和Accept设置的区别 Accept:接口要返回给客户端的数据格式 cur

  • 如何用Python实现简单的Markdown转换器

    今天心血来潮,写了一个 Markdown 转换器. import os, re,webbrowser text = ''' # TextHeader ## Header1 List - 1 - 2 - 3 > **quote** > quote2 ## Header2 1. *斜体* 2. [@以茄之名](https://www.jb51.net/people/e4f87c3476a926c1e2ef51b4fcd18fa3) 3. ![](https://www.jb51.net/v2-85

随机推荐