【问题标题】:Elegant way to specify which parts of a tree to include / exclude指定包含/排除树的哪些部分的优雅方式
【发布时间】:2011-06-09 18:43:15
【问题描述】:

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

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

例如对于 HTML DOM,规则可能类似于 ...

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

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

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

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

【问题讨论】:

    标签: language-agnostic filter tree filtering


    【解决方案1】:

    XPath 浮现在脑海中。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2018-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多