(defn- zero-deltas [zip]
(loop [loc zip]
(if (zip/end? loc)
loc
(recur (zip/next (if (= (:tag (zip/node loc)) :delta)
(zip/edit loc #(assoc-in % [:attrs :value] "0"))
loc))))))
Всё хорошо, но непонятно, что можно вернуть из функции, чтобы можно было аналогичную звать дальшe:
(-> filename parse xml-zip
zero-deltas
something-else)
Переписал на data.xml с рекурсивным беганием map-ами по :content. Омерзительно. В недоумении.
Upd: слава
Upd2: работает вот так, но недоумение остаётся:
(if (zip/end? loc)
(with-meta (vector (zip/root loc) nil) (meta zip))
Error
Your IP address will be recorded