Kob*_*son 2 xml clojure xml-generation
假设我有一张地图矢量
[{:username "kbee" :firstname "Kay" :lastname "Bee"},
{:username "jcee" :firstname "Jay" :lastname "Cee"}]
Run Code Online (Sandbox Code Playgroud)
我想为每个地图生成xml文件,如下所示
<user>
<username>kbee</username>
<firstname>Kay</firstname>
<lastname>Bee</lastname>
</user>
Run Code Online (Sandbox Code Playgroud)
我如何使用clojure核心库来实现这一目标.(我看着活跃和舰队,但对我来说似乎有点复杂.)
理想情况下,我想做以下事情
(map #(spit (str (:username %) ".xml") (gen-xml sometemplate %) map-of-users))
Run Code Online (Sandbox Code Playgroud)
你尝试过clojure.xml/emit-element吗?:
(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]}) ))
Run Code Online (Sandbox Code Playgroud)
试试REPL:
user> (to-xml (first v))
<username>kbee
</username>
<firstname>Kay
</firstname>
<lastname>Bee
</lastname>
nil
Run Code Online (Sandbox Code Playgroud)
您只需要使用用户标记包装to-xml中的内容即可.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |