首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Enlive -提取原始HTML

Enlive -提取原始HTML
EN

Stack Overflow用户
提问于 2015-02-04 13:54:56
回答 2查看 197关注 0票数 2

是否可以使用enlive选择器检索原始HTML (及其怪癖和格式)?

代码语言:javascript
复制
(def data "<div class=\"foo\"><p>some text <br> some more text</p></div>") 
(apply str 
    (enlive/emit* (enlive/select (enlive/html-snippet data) 
                                 [:.foo :> enlive/any-node])))

=> "<p>some text <br /> some more text</p>"

在本例中,enlive将<br>标记转换为自结束标记,这与原始输入片段不同。

我怀疑enlive正在将其转换为一个类似hiccup的标签列表,因此原始信息不幸地丢失了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-04 17:05:58

您的怀疑是正确的,在为HTML提供一致的抽象时,enlive会消耗这些信息。我不认为这是它设计提供的一个功能。

票数 3
EN

Stack Overflow用户

发布于 2015-02-06 00:09:36

虽然这可能只是切线相关,但如果使用“追加”,则可以保留否则将被net.cgrand.enlive-html/html-resource抛出的信息(例如注释)。

https://github.com/cgrand/enlive/wiki/Table-and-Layout-Tutorial%2C-Part-3%3A-Simple-Transformations

代码语言:javascript
复制
<div id="wrapper">
   <!--body-->
</div>

jcrit.server=> (pprint 
             (transform layout [:#wrapper] 
                        (append page-content)))
({:tag :html,
     {:tag :div,
      :attrs {:id "wrapper"},
      :content
      ("\n       "
       {:type :comment, :data "body"}   ; <<== Still there.
       "\n    "
       {:tag :p, :content ("Hi, mom!")})}
     "\n")}
   "\n\n")})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28323170

复制
相关文章

相似问题

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