У меня есть следующий образец xml:
<data>
<products>
<product>
<section>Red Section</section>
<images>
<image>img.jpg</image>
<image>img2.jpg</image>
</images>
</product>
<product>
<section>Blue Section</section>
<images>
<image>img.jpg</image>
<image>img3.jpg</image>
</images>
</product>
<product>
<section>Green Section</section>
<images>
<image>img.jpg</image>
<image>img2.jpg</image>
</images>
</product>
</products>
</data>
Я знаю, как разобрать его в Clojure
(require '[clojure.xml :as xml])
(def x (xml/parse 'location/of/that/xml'))
Это возвращает вложенную карту, описывающую xml
{:tag :data,
:attrs nil,
:content [
{:tag :products,
:attrs nil,
:content [
{:tag :product,
:attrs nil,
:content []..
Эту структуру, конечно, можно просмотреть с помощью стандартных функций Clojure, но она может оказаться очень многословной, особенно по сравнению, например, с запросом к ней с помощью XPath. Есть ли помощник для обхода и поиска такой структуры? Как я могу, например
<product>
<images>
содержит <image>
с текстом "img2.jpg"section
которого является "Красная секция"Спасибо