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