指定要包含/排除树的哪些部分的优雅方式

时间:2011-01-15 20:52:39

标签: language-agnostic filter tree filtering

假设你有一棵树(我将使用HTML DOM树作为示例,但问题是关于任何类型的树)。您希望过滤树以包含某些分支并排除其他分支。有时你会排除一个分支,除了你想要保留的分支。

有没有人有一种优雅的表达方式(文本表示或者可能是一个流畅的界面来构建和管理这样的树过滤器)?

e.g。对于HTML DOM,规则可能看起来像......

  (-head, +body>(-footer, -header, +content>(-table>+tr)))

这可能意味着:下降树,如果你点击头元素忽略它及其下面的所有内容,包括一个body元素,但在其中排除页脚和标题并包含除我们只需要表行的表之外的内容。此规则不解决后代与直接子项的问题,这可能是用户可能想要指定的其他内容。

基于树的方法是指定规则还是包含/排除路径的顺序列表,这是帮助用户选择要保留的内容和排除内容的更好方法吗?

有关代表此类包含/排除规则的替代方式的任何想法/建议吗?

2 个答案:

答案 0 :(得分:0)

想到了{p> XPath

答案 1 :(得分:0)

的XPath?并使用不同的方法/集合来包含/排除。我认为使用用于节点选择的现有语言比创建自己的语言更好。其他人更容易理解等等。