![]() |
购物专题 | 基金专题 | 性专题 | 饮食专题 | 教育专题 | 生活大参考 | 园林资讯 | 园艺库 | 健康专题 | |
| 论文专题 | 家庭养花 | 园林景观 | 盆景奇石 | 激情图库 | 农业资料库 | 园林古建 | 英文站 | 花卉栽培 |
比如我的数据包格式:
头部:
unsigned short opttype 操作类型
unsigned short headsize 数据包头部长度
unsigned short packsize 数据包长度
数据
BYTE data 数据
怎样用XML来封装呀?
从没用过XML,请详细点好吗?
谢谢!
---------------------------------------------------------------
如果data数据是二进数据,而且数据很大的话,这样做不太适合的.
---------------------------------------------------------------
unsigned short headsize 数据包头部长度
unsigned short packsize 数据包长度
=====>按照xml标准做,你不需要加这些东西,它们可以省略,这也是xml统一标准的好处;标准xml解析器能区别数据元
另外:xml封装的是字符串,其中不可以有ascii 0这样的字符,而且其不适应包装大量二进制数据
你的数据可以这样包装:
<head>
<cmd>10001</cmd> //====> unsigned short opttype
<data>3401234n1234onc21349q234flksdfafa9erqwerqwerqwerqer</data> //==>BYTE data 数据
</head>
再从网上download一个xml解析器,做为你程序的模块即可
---------------------------------------------------------------
也可以直接用结构体封装
---------------------------------------------------------------
以前都是用结构封装的
这次换了个系统设计师,非叫用XML不可,不知道处于什么想法?XML有很多优势吗?
-------------------------------------------------------------------------
1.就效率来说,肯定是结构体来得高,XML肯定是比较慢的。
2.两者都可以设计出可扩展的协议来。
3.相比之下,使用XML设计出的可扩展协议更加方便,但是在传输二进制数据时,
可以会有限限制,不过这也跟XML Parser的不一样而不一样的。不过到目前为止,
本人还没看到可以很好的进行二进制数据传输的Parser,但是,他可以通过编成
其他的编码方式来进行传输,但是这样将会进一步损失效率。而使用结构体就没
有这方面的问题,但是设计出可扩展协议,将对开发人员要求比较高,在使用时
也要多些注意。
---------------------------------------------------------------
你不是对stl很熟吗,看源码吧。很多xml用temple,stl做的,开源的大把
http://www.vckbase.net/code/listcode.asp?mclsid=22&sclsid=2201&page=1
http://www.firstobject.com/ 里有两个常用的xml解析器
一个依赖于MS的<afxtempl.h>叫Markup
另一个是stl的只需<string>叫MarkupSTL,个人更喜欢用这个,在你的模型中用MarkupSTL.h/cpp即可,它有demo
浙ICP备 :07003766号 Copyright © 2001-2007 JUBAO163,All rights reserved. |