Haskell:
HTML পার্স করা

কিভাবে:

Haskell এ HTML পার্স করতে, আমরা এর সাদাসিধা এবং নমনীয়তার জন্য tagsoup লাইব্রেরি ব্যবহার করব। প্রথমে, আপনার প্রজেক্টের cabal ফাইলে tagsoup যুক্ত করে লাইব্রেরিটি ইনস্টল করার জন্য মনে রাখবেন অথবা cabal install tagsoup চালান।

{-# LANGUAGE OverloadedStrings #-}

import Text.HTML.TagSoup

-- ডেমোনস্ট্রেশনের জন্য স্যাম্পল HTML
let sampleHtml = "<html><body><p>Learn Haskell!</p><a href='http://example.com'>Click Here</a></body></html>"

-- HTML পার্স করে লিংকগুলি (a ট্যাগ) ফিল্টার করুন
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 হল একটি বৃহত্তর লাইব্রেরি যা বিভিন্ন মার্কআপ ফর্ম্যাটের মধ্যে রূপান্তরে মনোনিবেশ করে, তাই যদি আপনার সেই অতিরিক্ত ক্ষমতা প্রয়োজন হয় অথবা আপনার অ্যাপ্লিকেশনে ইতিমধ্যে ডকুমেন্ট ফর্ম্যাটের সাথে কাজ করছেন, তবে এটি ব্যবহার করুন।