中成网站建设
    成都做网站,就选中成网站建设!专业四川网站建设,成都网站建设服务提供商
            企业宣传网站建设、电子商务网站建设、OA办公系统。联系电话:028-66165255
    资讯列表  
 ASP.NET防止用户多次登录的方法…
 生成不重复的随机整数
 ASP.NET获取IP的6种方法
 ASP dot net 里的状态管理-Ses…
 判断获取的参数是否为null
 中文验证码生成实例
 微软发布第二个实验版的.Net 4…
 微软轻量级Web开发平台WebMatr…
 asp.net 生成图片验证码
 Asp.net直接保存文件到客户端
 .Net开发中的多线程编程总结
 C#中关于get和set的详细例子介…
 ASP.NET编程技巧:提高asp.net…
 asp.net 剪切 缩小图片原码
 截断过长字符串为省略号算法
    资讯详情  
XML+正则表达式+反射+脚本引擎,实现简单的业务可配
发布时间:2009-08-17                  来源:成都网站建设--中成网建         【加入收藏】

最近公司要做一个协议测试程序,要求把所有协议的格式定义都放到XML中,可是XML一般只能用来保存数据,而很难用来定义逻辑运算,所以解析服务器返回的数据包时,就不太好实现了。不过还好,我们的协议定义都是有一定的规律的,现在的问题是如何实现一些“逻辑运算”,如,根据服务器返回的不同的状态,按不同的方式对数据进行解包; 还有循环处理等等问题。

比如对for循环用下面格式进行定义:

<data name="counter" type="short"/>
<for count="${counter}-1"><!--通过${counter}这种语法表示对其它节点的引用-->
<data name="item" type="int"/>
</for>

这段XML主要用来表示:先从流中读取一个short,并将其保存到一个HashMap中,然后解析到for节点时,发现它的循环次数是通过引用counter节点得来的,于是我们去HashMap里面找到这个值,并将其作为for的循环次数。在for循环中要做的事情就是从流中读取一个int。

在这里我们用到XML的几个特性:1、可以用来保存数据,并且数据都包含其特有的含义的; 2、可以用来描述数据要格式。

正则表达式在这里,是用来处理${counter}这种语法的。如果counter的值为10,那么通过正则表达式处理后得到字符串"10-1"。

反射是用来调用对象的方法或属性。如:${var.toString()}或${var.field}.

脚本引擎是用来计算简单表达式的,如果"${counter}-1"通过正则表达式处后得到"10-1",接着我们就可以把字符串"10-1"放入到脚本引擎中计算并返回一个int 9。通过脚本引擎还可以处理一些boolean运算,比如我们要把"1<2 && 3>4"转成boolean,就可以通过脚本引擎来实现了。

 

 

 
上一篇:.Net的精髓:XML和SOAP
下一篇:分享插件开发经验--访Groovy Eclipse v2开发团队
【打印】    【关闭】    【字体变小】    【字体变大】

友情链接

首页  |  建站学院  |  网站建设  |  成功案例  |  业务体系  |  软件定制  |  解决方案  |  联系我们  |  免责声明
中成网建公司地址:四川省成都市双楠双安东巷1号18-3-5 电话:028-6616 5255 版权所有 @ 中成网建
成都网站建设网址:www.csccd.net www.csccd.cn 邮箱:web#csccd.net
信息产业部备案号:蜀ICP备08106559号