3

HTML5 允许<meta>标签出现在正文中,但 Enlive 似乎不支持这一点:

(deftest test-enlive
  (testing "enlive"
    (let [html-as-string "<!DOCTYPE html><html lang=\"en\"><body><div><meta foo=\"bar\"><span>the content</span></body></html>"
          parsed-html (enlive/html-resource (java.io.StringReader. html-as-string))
          span (enlive/select parsed-html [ :div  :span ])
          content (first (map enlive/text span))]
      (is (= "the content" content)))))

此测试失败,但如果您删除元标记,它将通过。

这个旧线程让我意识到这是导致问题的元标记。

我意识到 Enlive 依赖于 Tagsoup,但是当我将其切换为 JSoup(声称支持 HTML5)时,我得到了相同的结果。

4

0 回答 0