-->

简单的Clojure的XML编辑(Simple Clojure XML edit)

2019-09-20 08:05发布

比方说,我有图的矢量

[{:username "kbee" :firstname "Kay" :lastname "Bee"},
 {:username "jcee" :firstname "Jay" :lastname "Cee"}]

我想生成XML文件为每个地图像下面

  <user>
   <username>kbee</username>
   <firstname>Kay</firstname>
   <lastname>Bee</lastname>
  </user>

我如何只使用Clojure的核心库来实现这一目标。 (我看着enlive和车队,但他们似乎有点复杂,我。)

理想情况下,我想做到以下几点

(map #(spit (str (:username %) ".xml") (gen-xml sometemplate %) map-of-users))

Answer 1:

你有没有尝试clojure.xml /发射元素? :

(use 'clojure.xml)
(def v [{:username "kbee" :firstname "Kay" :lastname "Bee"},
        {:username "jcee" :firstname "Jay" :lastname "Cee"}])

(defn to-xml [m] (doseq [[k v] m] 
                  (emit-element {:tag k :content [v]}) ))

尝试在REPL:

user> (to-xml (first v))
<username>kbee
</username>
<firstname>Kay
</firstname>
<lastname>Bee
</lastname>
nil

所有你需要的则是包装什么的到XML与用户的标签。



文章来源: Simple Clojure XML edit