【问题标题】:Enlive - Extract content of tag if attribute has designated valueEnlive - 如果属性具有指定值,则提取标签的内容
【发布时间】:2013-09-25 11:07:34
【问题描述】:

我正在尝试使用 Clojure 和 Enlive 来提取 p html 标记的内容,条件是其中一个属性具有我指定的值。像这样的

<p itemprop="description"> Some content I want to extract </p>

所以如果itemprop="description",我想得到Some content I want to extract

我对 Clojure 很陌生,所以帮助会很大。

【问题讨论】:

    标签: clojure enlive


    【解决方案1】:

    要获取具有特定属性的任何节点的文本内容,选择器应如下所示:

    (require '[net.cgrand.enlive-html :as e])
    
    [(e/attr= :itemprop "description") e/text-node]
    

    如果内容包含文本和标签的混合,并且您想保留它们,您应该使用net.cgrand.enlive-html/any-node 而不是net.cgrand.enlive-html/text-node

    您可以使用以下方法对其进行测试:

    (require '[net.cgrand.enlive-html :as e])
    
    (def data "<p itemprop=\"description\"> Some content I want to extract </p>")
    
    (e/select-nodes* (e/html-snippet data)
                     [(e/attr= :itemprop "description") e/text-node])
      ;=> (" Some content I want to extract ")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-06
      • 2012-01-07
      • 2020-05-02
      • 1970-01-01
      • 2017-03-09
      • 2020-10-25
      • 2011-12-14
      • 2021-01-03
      相关资源
      最近更新 更多