Haskell:
Analisi del HTML

Come fare:

Per parsare HTML in Haskell, useremo la libreria tagsoup per la sua semplicità e flessibilità. Prima di tutto, assicurati di installare la libreria aggiungendo tagsoup al file cabal del tuo progetto o eseguendo cabal install tagsoup.

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- HTML di esempio per dimostrazione
let sampleHtml = "<html><body><p>Impara Haskell!</p><a href='http://example.com'>Clicca Qui</a></body></html>"

-- Parsare HTML e filtrare per i link (tag a)
let tags = parseTags sampleHtml
let links = [fromAttrib "href" tag | tag <- tags, isTagOpenName "a" tag]

-- Stampare i link estratti
print links

Output di esempio:

["http://example.com"]

Per esigenze di parsing HTML più sofisticate, considera l’uso della libreria pandoc, specialmente se stai lavorando con la conversione di documenti. È eccezionalmente versatile ma comporta maggiore complessità:

import Text.Pandoc

-- Assumendo di avere un documento Pandoc (doc) caricato, ad esempio, dalla lettura di un file
let doc = ... -- Il tuo documento Pandoc va qui

-- Convertire il documento in una stringa HTML
let htmlString = writeHtmlString def doc

-- Ora, dovresti parsare `htmlString` come sopra o procedere secondo le tue necessità.

Tieni presente che pandoc è una libreria molto più ampia che si concentra sulla conversione tra numerosi formati di markup, quindi usala se hai bisogno di quelle capacità extra o se stai già trattando formati di documenti nella tua applicazione.