Haskell:
HTML:n jäsennys

Miten:

HTML:n jäsentämiseen Haskellissa käytämme tagsoup-kirjastoa sen yksinkertaisuuden ja joustavuuden vuoksi. Varmista ensin, että asennat kirjaston lisäämällä tagsoup projektisi cabal-tiedostoon tai suorittamalla cabal install tagsoup.

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- Esimerkki HTML demonstraatiota varten
let sampleHtml = "<html><body><p>Opiskele Haskellia!</p><a href='http://example.com'>Klikkaa tästä</a></body></html>"

-- Jäsennä HTML ja suodata linkit (a-tunnisteet)
let tags = parseTags sampleHtml
let links = [fromAttrib "href" tag | tag <- tags, isTagOpenName "a" tag]

-- Tulosta poimitut linkit
print links

Esimerkkitulostus:

["http://example.com"]

Monimutkaisempiin HTML:n jäsentämisen tarpeisiin harkitse pandoc-kirjaston käyttämistä, erityisesti jos työskentelet dokumenttien muuntamisen parissa. Se on poikkeuksellisen monipuolinen, mutta tulee suuremmalla monimutkaisuudella:

import Text.Pandoc

-- Olettaen, että sinulla on Pandoc-dokumentti (doc) ladattuna, esim. tiedoston lukemisen kautta
let doc = ... -- Pandoc-dokumenttisi tulee tähän

-- Muunna dokumentti HTML-merkkijonoksi
let htmlString = writeHtmlString def doc

-- Nyt sinun tulisi jäsentää `htmlString` kuten yllä tai jatkaa tarpeidesi mukaisesti.

Pidä mielessä, että pandoc on paljon suurempi kirjasto, joka keskittyy muuntamaan useiden merkkausmuotojen välillä, joten käytä sitä, jos tarvitset näitä ylimääräisiä ominaisuuksia tai jos työskentelet jo dokumenttiformaattien parissa sovelluksessasi.