转载自:http://blog.csdn.net/fanlinsun/article/details/8491481
ClearSilver模板编程:
1. 概述:
clearsilver是一个用C语言实现的高性能的html模版系统.
CS 模板系统包含两个组成部分:Dataset和Template Files。
其中Dataset 为一种树状的数据结构,它被Template Files所引用,并生成最后的页面.
Template Files 通常为静态页面元素以及CS 语句的组合,其中的CS 语句通过变量名称来引用dataset中的数据,并通过一定的语法规则生成动态的内容。
引入CS之后,我们可以将静态的页面元素写入到模板文件中,而将XML数据源以及后台的参数导入到Dataset数据结构中,通过CS的库函数调用Dataset和Template File来生成整个动态页面。
CS文件本身不符合XML规范。
2. 变量的替换和定义
包含:var,evar,lvar,include,linclude,set,name。
常用:var,include,linclude,set
<?cs var:code?>,这个简单的语句就会把code值打印出来
<?cs include:”util”?>把文件包含进来
<?cs linclude:”AAAA.cs”?> 执行文件AAAA.cs中的代码。
<?cs set:account=””?>把account设定值为空。
<?cs set:i=#5?>CS模板中数字都写成#1,#2的形式。
3. 控制语句:
命令有:if, else, elif, alt
<?cs if:#1?>
当前数字是1
<?cs elif:#2?>
当前数字是2
<?cs else?>
数字为其他
<?cs /if?>
4. 迭代语句
命令有:each, loop, with
常用:each
<?cs each:items=res.item?> 遍历
<?cs var:items?>
<?cs /each?>
<?cs loop:x = #1, #205, #2 ?><?cs var:x ?>, <?cs /loop ?> 循环,输出:1,3,5,...,205
<?cs loop:x = #205, #1, "-2" ?><?cs var:x ?>, <?cs /loop ?> 循环,输出:205, 203, 201, ... 1
5,宏
宏的命令:def, call
def,定义宏的命令
<?cs def:map_val(val, map) ?> //遍历map,输出与val相等的值
<?cs each:item = map ?>
<?cs if:val == item ?>
<?cs var:item.val ?>
<?cs /if ?>
<?cs /each ?>
<?cs /def ?>
<?cs call:map_val(val,map)?> 调用函数(宏)
6. 函数
subcount(var),这个函数返回子节点的个数
string.slice(expr, start, end),切片操作,相当于substring
string.find(string, substr),查找函数,它会返回substr表达式的数字位置(如果找到的话),否则返回-1
string.length(expr)
url_escape(string);
//This URL encodes the string.
//This converts characters such as ?, &, and = into their URL safe equivilants using the %hh syntax.
7. cs中的扩展语法:
CS中的Macros:
CS中的自定义函数都是以宏的形式存在的,所以在函数中的空格,将会返回在调用的结果中
如果不想输出空格,函数体中不能留空格
8. 注释: <!-- 注释内容-->