关于VC下XML文件的调试心得

0xA    换行    /n    LF

0xD    回车    /r    CR

0x9    tab        /t    HT

0x3C  <

0x3D  =

0x3E  >   

0x2F  /

再给出几个常用的宏,便于构建XML.在C下

#define x_EOL "/r/n" // can be /r/n or /n or empty
#define x_EOLLEN (sizeof(x_EOL)-1); // string length of x_EOL
#define x_ATTRIB "/"" // it is also can be '
#define x_TABLE "/t"
#define x_SLASH "/"
#define x_BACK_SLASH "//"
#define x_LEFT "<"
#define x_RIGHT ">"
如果要创建如下的报文,应该如何做呢?
/*

*/
 
其实这样的报文是不好的,因为XML标准本身推荐使用元素和属性的方式,而不是在元素后面将所有的属性全部跟上,后面的是比较好的格式




   
       
        Bob Dylan
        USA
        Columbia
        10.90
        1985
   
   
       
        Bonnie Tyler
        UK
        CBS Records
        9.90
        1988
   
 

类似于这样的格式就是好的格式,但是既然人家规定了就用上面的格式来写,那就没有办法了,将我VC下编译过的函数给共享一下吧,其中有创建和检索属性,可能有些不太直观,不分步调试的话就很难一下全部看懂,呵呵,不过注释丰富

test.h文件内容:

#ifndef __TEST_H__
#define __TEST_H__
//Author:scarlettsp
#include 
#include 
#include 
#include 

#define x_EOL "/r/n" // can be /r/n or /n or empty
#define x_EOLLEN (sizeof(x_EOL)-1); // string length of x_EOL
#define x_ATTRIB "/"" // it is also can be '
#define x_TABLE "/t"
#define x_SLASH "/"
#define x_BACK_SLASH "//"
#define x_LEFT "<"
#define x_RIGHT ">"

#define x_HEAD "
  
  "
#define x_HEAD_LENGTH sizeof(x_HEAD)


#define x_set_head(xmlbody) strcat(xmlbody,  "<")
#define x_set_head_ex(xmlbody) strcat(xmlbody,  "")
#define x_set_trail(xmlbody) strcat(xmlbody, ">")
#define x_set_trail_ex(xmlbody) strcat(xmlbody, "/>")
#define x_set_space(xmlbody) strcat(xmlbody, " ")
#define x_set_N(xmlbody) strcat(xmlbody, x_EOL)
#define x_set_T(xmlbody) strcat(xmlbody, x_TABLE)
#define x_set_NT(xmlbody) strcat(xmlbody, x_EOL);strcat(xmlbody, x_TABLE)
#define x_set_NTT(xmlbody) strcat(xmlbody, x_EOL);strcat(xmlbody, x_TABLE);strcat(xmlbody, x_TABLE)


int get_attrib_value(char *pParse, char *dst);

int isNumber(char *string);


/*

   
   

*/


#endif//__TEST_H__

 

test.cpp 的内容是:

 

呵呵,通过自己写的函数接口可以灵活的构建出所需的XML文件并可以进行元素的查找和获取,虽然没有一些人效率高吧,但是自己写的难免吧,不过在C下是无现成可用的函数的,这里本着GPL的精神进行发布,照搬也要测试下接口的可用性,这个是我在工程是实际使用的函数,有一定的保障,刚解决了一个缓存过小的而内存溢出的问题,所以在后来你可以看到动态分配的内存的处理方式.

起个抛砖引玉的作用,万事开头难,给做XML部分的人开了个头.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔尊moon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值