一个使用 xml 和 beetl 来实现的计算引擎(评级引擎),支持树形评级结构,通过计算得出一个评级,可以用于打分等应用。
<?xml version="1.0" encoding="UTF-8"?> <workspace name="评级"> <project name="银行评级"> <doc name="评级得分" f="sum"> <node name="财务信息" f="sum"> <node name="年度利润">每月收入*12</node> <node name="年度负债" >每月负债*12*0.3</node> </node> </doc> </project> </workspace> <node name="非财务信息" f="sum"> <node name="上访次数" f="script"> <![CDATA[ var c =上访次数; var d = 0; if(c>10){ d=10; }else{ d=100; } return d ; ]]> </node> </node> EvalEngine engine = new EvalEngine(); Map<String,Object> paras = new HashMap<String,Object>(); paras.put("每月收入", 178832323.12); paras.put("每月负债", 128.99); InputStream ins = EvalEngineTest.class.getResourceAsStream("/sample/simple001.xml"); InputStreamReader reader = new InputStreamReader(ins,"utf8"); Object ret = engine.run(reader, paras); System.out.println(ret);