Парсинг HTML5 с помощью Enlive/Tagsoup/JSoup

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), я получаю тот же результат.

0 ответов

Другие вопросы по тегам