首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在html页面上使用enlive进行多个转换

在html页面上使用enlive进行多个转换
EN

Stack Overflow用户
提问于 2015-02-11 04:27:12
回答 1查看 134关注 0票数 1

衣帽间和居住都很棒。在试图了解Enlive的功能时,我试图将两个转换应用到html页面。

HTML页面有两个我想要转换的区域(Div)。有关的第一个div被克隆了16次。第二个div被克隆5次。原始的div(来自html文件)应该被覆盖,或者根本不出现。

Enlive有一个惯用的方法

代码语言:javascript
复制
(apply str (enlive-html/emit* ze-contant-transferm))

这对于一次转换来说是很好的。

但是,我想将两个转换应用到页面,因此我尝试了如下所示:

代码语言:javascript
复制
(str
  (apply str (enlive-html/emit* ze-first-wan))
  (apply str (enlive-html/emit* ze-secand-wan)))

单独完成的转换完全符合我的意愿:它们消耗了原始的HTML,并显示了我用来填充信息的克隆。

但是,以这种方式将原来的html页面div保存在一起,所以我最终会将原来的html文件div与我的克隆放在一起,而这种行为并不是bueno。

请帮帮忙。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 07:57:13

Enlive-html为此提供了do->函数。

代码语言:javascript
复制
(defn do->
 "Chains (composes) several transformations. Applies functions from left to right."
 [& fns]
  #(reduce (fn [nodes f] (flatmap f nodes)) (as-nodes %) fns))

你可以用这样的东西:

代码语言:javascript
复制
 (apply str (enlive-html/emit* (enlive-html/do-> ze-first-wan ze-second-wan)))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28446610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档