我有一个类似于以下内容的 HTML 片段:
<div id="root">
<div id="A" attrib_2="bar"></div>
<div id="B" attrib_2="baz">
<div id="H" attrib_1="gnu">
<p>
<div id="F" attrib_2="baz"></div>
</p>
</div>
</div>
<div id="C" attrib_2="owl"></div>
<div id="D" attrib_2="uhu"></div>
<div id="E" attrib_2="boom"></div>
</div>
现在,我想选择所有具有 attrib_2 (*[attrb_2]) 的片段,不包括具有 attrib_1 集的节点的后代。可以有更多带有任意标签的嵌套级别(如<p>
本例所示)。使用 Enlive ( http://enlive.cgrand.net/ ),我已经尝试过类似的方法:
(select snippet [(but (attr? :attrib_1)) (attr? :attrib_2)])
但这不起作用,因为否定(but (attr? :attrib_1))
也匹配<p>
标签。有没有办法用给定的选择器谓词(http://enlive.cgrand.net/syntax.html)来表达这一点,还是我必须自己写一个?
提前致谢
-约臣