Как использовать отрицание селектора (но…) в Enlive для более сложного фрагмента HTML?

У меня есть фрагмент HTML, похожий на:

Теперь я бы хотелось бы выбрать все фрагменты, имеющие атрибут attrib_2 (* [attrb_2]), за исключением тех, которые являются потомками узла, для которого установлен атрибут attrib_1. Может быть больше уровней вложенности с произвольными тегами (например,

в этом примере). С Enlive ( http://enlive.cgrand.net/ ) я уже пробовал что-то вроде:

(select snippet [(but (attr? :attrib_1)) (attr? :attrib_2)])

Но это не работает, потому что отрицание (но (attr?: Attrib_1 )) соответствует также тегу

. Есть ли способ выразить это с помощью заданных предикатов селектора ( http://enlive.cgrand.net/syntax.html ) или мне нужно написать свой собственный?

Заранее спасибо

-Jochen

15
задан BoltClock 10 August 2011 в 20:04
поделиться