【发布时间】:2011-06-09 18:43:15
【问题描述】:
假设您有一棵树(我将使用 HTML DOM 树作为示例,但问题是关于任何种类的树)。您想要过滤树以包含某些分支并排除其他分支。有时你会排除一个分支,除了其中一些你想保留的元素。
有没有人有一种优雅的方式来表达这一点(文本表示或流畅的界面来构建和管理这样的树过滤器)?
例如对于 HTML DOM,规则可能类似于 ...
(-head, +body>(-footer, -header, +content>(-table>+tr)))
这可能意味着:下降树,如果你点击一个 head 元素忽略它和它下面的所有东西,包括一个 body 元素,但在它里面不包括页脚和页眉,并包括除了我们想要表格行的表格之外的内容。此规则未解决后代与直接子代的问题,这可能是用户可能想要指定的其他内容。
在帮助用户选择要保留的内容和要排除的内容方面,基于树的方法来指定规则或包含/排除路径的顺序列表是否是更好的方法?
对于表示此类包含/排除规则的替代方式有任何想法/建议吗?
【问题讨论】:
标签: language-agnostic filter tree filtering