Haskell:
การวิเคราะห์ HTML

วิธีการ:

สำหรับการแยกส่วน HTML ใน Haskell เราจะใช้ไลบรารี tagsoup เนื่องจากความเรียบง่ายและความยืดหยุ่น ขั้นตอนแรก, ต้องแน่ใจว่าได้ติดตั้งไลบรารีโดยการเพิ่ม tagsoup เข้าไปในไฟล์ cabal ของโปรเจกต์หรือโดยการรัน cabal install tagsoup.

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- ตัวอย่าง HTML สำหรับการสาธิต
let sampleHtml = "<html><body><p>เรียนรู้ Haskell!</p><a href='http://example.com'>คลิกที่นี่</a></body></html>"

-- แยกส่วน HTML และกรองหาลิงค์ (a tags)
let tags = parseTags sampleHtml
let links = [fromAttrib "href" tag | tag <- tags, isTagOpenName "a" tag]

-- พิมพ์ลิงค์ที่สกัดได้
print links

ตัวอย่างผลลัพธ์:

["http://example.com"]

สำหรับความต้องการในการแยกส่วน HTML ที่ซับซ้อนมากขึ้น พิจารณาใช้ไลบรารี pandoc, โดยเฉพาะอย่างยิ่งหากคุณทำงานกับการแปลงเอกสาร มันมีความหลากหลายอย่างยิ่ง แต่มาพร้อมกับความซับซ้อนมากขึ้น:

import Text.Pandoc

-- สมมติว่าคุณมีเอกสาร Pandoc (doc) โหลดไว้, เช่น, จากการอ่านไฟล์
let doc = ... -- เอกสาร Pandoc ของคุณไปที่นี่

-- แปลงเอกสารเป็นสตริง HTML
let htmlString = writeHtmlString def doc

-- ตอนนี้, คุณจะได้แยกส่วน `htmlString` ตามที่กล่าวไว้ข้างต้นหรือดำเนินการตามความต้องการของคุณ

ทั้งนี้ pandoc เป็นไลบรารีขนาดใหญ่ที่โฟกัสไปที่การแปลงระหว่างรูปแบบมาร์กอัปจำนวนมาก, ดังนั้นให้ใช้มันหากคุณต้องการความสามารถเพิ่มเติมเหล่านั้นหรือหากคุณกำลังจัดการกับรูปแบบเอกสารในแอปพลิเคชันของคุณอยู่แล้ว