マップを使用してリスト(= multi-valued-attribute)から特定の要素を削除するにはどうすればよいですか?たとえば、特定のリスト内のすべてのbを除外したいとします。
<["a", "b", "c", "b"]: {<table.(it)>}; separator=",">
table ::= ["b":, default: key]
望ましい結果は「a、c」ですが、実際の結果は「a ,, c」
です。マップはbをnullに正常に変換しますが、匿名のテンプレート{}にラップされ、非になります。 null値。したがって、strip()関数でも消えることはありません。
したがって、問題は、上記のコードをわずかに変更することで、マップを使用してリストをフィルタリングすることは可能でしょうか?
アップデート
回避策を見つけました:
filter(it) ::= "<if(it)><it><endif>"
<["a", "b", "c", "b"]: {<table.(it)>}: filter(); separator=",">
これにより、私が望んでいた結果が得られます:a、c