Я пытаюсь применить функцию для извлечения содержимого одного тега из xml в коллекции тегов. В принципе, я пытаюсь сделать функцию, которая будет извлекать содержимое из XML, как этотВ Clojure как применять функцию в коллекции
(defn get-events
[xz]
(map (juxt
#(zf/xml1-> % :title zf/text)
#(zf/xml1-> % :performers :performer :name zf/text)
#(zf/xml1-> % :start_time zf/text)
#(zf/xml1-> % :stop_time zf/text))
(zf/xml-> xz :events :event)))
И мое решение до сих пор выглядит как этот
(ns datamodel
(:use
[net.cgrand.enlive-html :as en-html ])
(:require
[clojure.zip :as z]
[clojure.xml :as xml ]
[clojure.data.zip.xml :as zf]
[clojure.java.io :as io]
))
(def data-url "http://api.eventful.com/rest/events/search? app_key=4H4Vff4PdrTGp3vV&keywords=music&location=Belgrade&date=Future")
(defn xz [url](z/xml-zip (xml/parse url)))
(defn xml-zipper [& tags](zf/xml-> (xz data-url) tags))
(defn func [& tags]#(zf/xml1-> (xml-zipper tags) % zf/text))
(def tags [:title :venue_name])
и в REPL, когда я пытаюсь применить FUNC к Теги:
(map #((apply comp (reverse(func :events :event))) %) tags)
Я получаю пустую коллекцию().
Благодаря хуан, но теперь я получаю java.lang.IllegalArgumentException: Неверное число аргументов (0) передается: DataModel $ $ FUNC Fn :( – Vesna
@Vesna я добавил пункт 4 в списке проблем, которые я думаю, обращается к ошибке, которую вы видите сейчас. –
Я изменил ее, до сих пор не повезло, мне интересно, можно ли создать список функций – Vesna