解決
http://hackage.haskell.org/packages/archive/hxt/latest/doc/html/control-arrow-arrowtre.html#v:deep
deep :: Tree t => a (t b) c -> a (t b) cSource
前のツリー全体を再帰的に検索します。これには、述語が保持されます。検索は上下に実行されます。ツリーが見つかると、これは結果リストの要素になります。発見されたツリーは、述語も保持できるサブレスについてはさらに検査されません。見る
multi
この種の検索のために。例:
deep isHtmlTable
ドキュメント内のすべてのトップレベルテーブル要素を選択します(適切な定義がありますisHtmlTable
)ただし、テーブルセル内でテーブルは発生していません。
関数名またはタイプの署名が与えられたドキュメントを見つけることができます フーグル また ヘヨー!
基本的に、XMLツリーが似ている場合
<p>
<strong id="a">
<em id="b">
<strong id="c">
foo
</strong>
</em>
</strong>
<ins id="d">
<strong id="e">
bar
</strong>
<em id="f">
baz
</em>
</ins>
</p>
deep (isElem >>> hasName "strong") tree
のリストを返します
<strong id="a">
<strong id="e">
これら2つを見つけることができるからです <strong>
sは木に足を踏み入れるとき、s (isElem >>> hasName tag) tree
木のルートは <p>
, 、ではありません <strong>
所属していません StackOverflow