1

マップを使用してリスト(= 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

4

1 に答える 1

0

テンプレートでフィルタリングしたくない場合もありますが、それでもバグである可能性があります。

わかりました、チェックアウトしました。それはnullではなく空を与えるので、それはアイテムであると考えます。STはfalse条件を同じように扱います:nullではなく空です。モデルでフィルタリングする必要があると思います。

于 2012-11-13T21:43:34.307 に答える