Haskell:
HTML parsen

Wie geht das:

Um HTML in Haskell zu parsen, verwenden wir die tagsoup Bibliothek aufgrund ihrer Einfachheit und Flexibilität. Stellen Sie zunächst sicher, dass Sie die Bibliothek installieren, indem Sie tagsoup zur cabal-Datei Ihres Projekts hinzufügen oder cabal install tagsoup ausführen.

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- Beispiel HTML zur Demonstration
let sampleHtml = "<html><body><p>Lerne Haskell!</p><a href='http://example.com'>Hier klicken</a></body></html>"

-- HTML parsen und nach Links filtern (a-Tags)
let tags = parseTags sampleHtml
let links = [fromAttrib "href" tag | tag <- tags, isTagOpenName "a" tag]

-- Extrahierte Links ausgeben
print links

Beispielausgabe:

["http://example.com"]

Für komplexere HTML-Parsing-Anforderungen sollten Sie die pandoc Bibliothek in Betracht ziehen, insbesondere wenn Sie mit der Konvertierung von Dokumenten arbeiten. Sie ist außerordentlich vielseitig, kommt aber mit mehr Komplexität:

import Text.Pandoc

-- Angenommen, Sie haben ein Pandoc-Dokument (doc) geladen, z.B. durch das Lesen einer Datei
let doc = ... -- Ihr Pandoc-Dokument kommt hier hin

-- Das Dokument in einen HTML-String konvertieren
let htmlString = writeHtmlString def doc

-- Nun würden Sie `htmlString` wie oben parsen oder wie für Ihre Anforderungen erforderlich fortfahren.

Beachten Sie, dass pandoc eine wesentlich größere Bibliothek ist, die sich auf die Konvertierung zwischen zahlreichen Auszeichnungsformaten konzentriert. Verwenden Sie sie also, wenn Sie diese zusätzlichen Fähigkeiten benötigen oder wenn Sie bereits in Ihrer Anwendung mit Dokumentformaten umgehen.