衣帽间和居住都很棒。在试图了解Enlive的功能时,我试图将两个转换应用到html页面。
HTML页面有两个我想要转换的区域(Div)。有关的第一个div被克隆了16次。第二个div被克隆5次。原始的div(来自html文件)应该被覆盖,或者根本不出现。
Enlive有一个惯用的方法
(apply str (enlive-html/emit* ze-contant-transferm))这对于一次转换来说是很好的。
但是,我想将两个转换应用到页面,因此我尝试了如下所示:
(str
(apply str (enlive-html/emit* ze-first-wan))
(apply str (enlive-html/emit* ze-secand-wan)))单独完成的转换完全符合我的意愿:它们消耗了原始的HTML,并显示了我用来填充信息的克隆。
但是,以这种方式将原来的html页面div保存在一起,所以我最终会将原来的html文件div与我的克隆放在一起,而这种行为并不是bueno。
请帮帮忙。
非常感谢。
发布于 2015-02-11 07:57:13
Enlive-html为此提供了do->函数。
(defn do->
"Chains (composes) several transformations. Applies functions from left to right."
[& fns]
#(reduce (fn [nodes f] (flatmap f nodes)) (as-nodes %) fns))你可以用这样的东西:
(apply str (enlive-html/emit* (enlive-html/do-> ze-first-wan ze-second-wan)))https://stackoverflow.com/questions/28446610
复制相似问题