MS RFC 9:查询模板的项标记¶
- 日期
2006/01/05
- 作者
史蒂夫·莱姆
- 联系方式
明尼苏达州第纳尔的史蒂夫·莱姆
- 状态
实施
- 版本
MAPServer 4.10
描述:通过查询模板公开的属性的即时处理仅限于几种形式的转义。这太局限了。如果能够将格式应用于属性(例如,截断小数或添加前缀),或者检测其为空或为空并呈现替代表示,则会更好。这个RFC描述了一个简单的方案,允许在发送给A用户之前对属性进行扩展处理。
这将涉及向模板处理器添加一个新的“item”标记。
受影响的文件¶
maptemplate.c=>添加标记处理器,更新查询模板处理器以使用标记处理器。
向后兼容性问题¶
不适用,新功能。公开属性的现有方法(例如,[attribute name]将继续工作,尽管我们可能会在某些时候将其标记为已弃用。
实施细节¶
“item”标记将具有以下属性。
名称:要公开的属性的名称
格式:包含标记$value的简单字符串,默认格式是任何处理的结果
nullformat:如果值为空则返回的字符串(长度=0)
uc: 将字符串转换为大写
lc:将字符串转换为小写
substr:通过提供偏移量和可选长度(从2007年3月13日起未实现)来执行类似Perl的子字符串操作。
commfy:在数字字符串中添加逗号(12345将变为12345),注意,目前只支持北美符号
转义:要执行的转义类型(默认为HTML),允许的值为HTML、URL、none
精度:小数点后要保留的小数位数
pattern:必须验证(针对列值)才能处理标记的正则表达式
我们可以在以后添加简单的case-statement支持,但上面的内容将满足我目前的需求。
实例¶
不显示小数点,并确认:
[项目名称=foo commity=真精度=0]-12345.6789输出为12345
条件显示项(如果其值包含“bar”):
[项目名称=foo模式=条]
转义要包含在URL中的值,并转换为大写:
[item name=foo uc=true escape=url]-“hello world”输出为“hello%20world”
对项目应用自定义格式,如果项目为空,则显示消息:
[项目名称=foo format=“foo=$value”nullformat=“找不到foo”]
笔记¶
项目标记在其他列标记(如[foo])之后处理,因此您可以在项目标记本身中包含替换字符串。
臭虫识别码¶
1636
投票历史¶
+1:酸橙,莫里塞特,巴特勒+0:吉利,温热丹