简单Clojure XML编辑 [英] Simple Clojure XML edit

查看:123
本文介绍了简单Clojure XML编辑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个地图向量

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

并且我想为每个地图生成xml文件,如下所示

and i want to generate xml files for each map like the following

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

我如何使用clojure核心库来实现这一点。
(我看着招募和舰队,但对我来说似乎有点复杂。)

how do i use just the clojure core library to achieve this. (I looked at enlive and fleet but they seemed a little complicated for me.)

理想情况下,我想做以下

ideally i'd like to do the following

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

(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

所有你需要的是将to-xml中的内容

All you need then is to wrap what's in the to-xml with a user tag.

这篇关于简单Clojure XML编辑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆