如何删除从使用地图的列表(=多值属性)特定元素? 例如,假设我想筛选出在给定列表中的所有B的:
<["a", "b", "c", "b"]: {<table.(it)>}; separator=",">
table ::= ["b":, default: key]
期望的结果将是“A,C”,但实际的结果是“一个,, C”
问题是,该地图成功地把B的为空值,但随后他们包裹在一个匿名模板{},成为非空值。 因此,他们不会消失与带()函数,无论是。
所以,问题是,这将是可以过滤使用地图通过稍微修改上面的代码清单?
更新
我已经找到了解决办法:
filter(it) ::= "<if(it)><it><endif>"
<["a", "b", "c", "b"]: {<table.(it)>}: filter(); separator=",">
这给了我想要的结果:A,C