Clojure эквивалентно библиотеке Python lxml?

Я ищу эквивалент Clojure/Java для библиотеки LXML Python.

Я использовал тонну в прошлом для разбора всех видов html (в качестве замены BeautifulSoup), и это здорово использовать один и тот же elementtree api для xml - действительно надежный друг! Может ли кто-нибудь рекомендовать аналогичную библиотеку Java/ Clojure?

О lxml

lxml - это библиотека обработки xml и html, основанная на libxml2. Он отлично работает с сломанными страницами html, поэтому он отлично подходит для задач очистки экрана. Он также реализует api ElementTree, поэтому структура xml/html представлена ​​как объект дерева с полной поддержкой для селекторов xpath и css между прочим.

Он также имеет некоторые действительно полезные функции, такие как "чистый" модуль, который будет выделять ненужные теги из "супа" (т.е. теги script, теги стиля и т.д.).

Поэтому он прост в использовании, надежный и очень быстрый...!

Ответ 1

Enlive: http://github.com/cgrand/enlive

Я использовал его для скрипирования экрана, и для этого он неплохо работает. Он использует селектор CSS, подобный синтаксису для получения элементов в документе.

Ответ 2

Для Java (и, следовательно, используемого из Clojure) является tagsoup -library, который, подобно lxml, равен толерантный парсер для ошибочных вариантов SGML.

Clojure имеет связанное пространство имен clojure.xml, но это будет работать только с допустимым XML.