Elixir:
HTML পার্স করা

কিভাবে:

Elixir, এর শক্তিশালী সামান্যতা মডেল এবং ফাংশনাল প্রোগ্রামিং পরিপ্রেক্ষিত সত্ত্বেও, HTML পার্সিং সক্ষমতার অন্তর্ভুক্ত করে না। তবে, আপনি এর জন্য Floki এর মত জনপ্রিয় থার্ড-পার্টি লাইব্রেরি ব্যবহার করতে পারেন। Floki HTML পার্সিংকে ইন্টুইটিভ এবং কার্যকর করে তোলে, Elixir-এর প্যাটার্ন ম্যাচিং এবং পাইপিং বৈশিষ্ট্যগুলি ব্যবহার করে।

প্রথমে, Floki-কে আপনার mix.exs dependencies-এ যোগ করুন:

defp deps do
  [
    {:floki, "~> 0.31.0"}
  ]
end

তারপর, mix deps.get রান করে নতুন নির্ভরতা ইনস্টল করুন।

এখন, আসুন আমরা একটি সহজ HTML স্ট্রিং পার্স করে তথ্য বের করি। আমরা <h1> ট্যাগের মধ্যে থাকা শিরোনামগুলি খুঁজব:

html_content = """
<html>
  <body>
    <h1>Hello, Elixir!</h1>
    <h1>Another Title</h1>
  </body>
</html>
"""

titles = html_content
         |> Floki.find("h1")
         |> Floki.text()

IO.inspect(titles)

স্যাম্পল আউটপুট:

["Hello, Elixir!", "Another Title"]

আরও গভীরে যেতে চাইলে, ধরুন আপনি লিঙ্ক (<a> ট্যাগস্) এবং তাদের href অ্যাট্রিবিউটগুলি বের করতে চান। এখানে কিভাবে আপনি এটি অর্জন করতে পারেন:

html_content = """
<html>
  <body>
    <a href="https://elixir-lang.org/">Elixir's Official Website</a>
    <a href="https://hexdocs.pm/">HexDocs</a>
  </body>
</html>
"""

links = html_content
        |> Floki.find("a")
        |> Enum.map(fn({_, attrs, [text]}) -> {text, List.keyfind(attrs, "href", 0)} end)
        
IO.inspect(links)

স্যাম্পল আউটপুট:

[{"Elixir's Official Website", {"href", "https://elixir-lang.org/"}}, {"HexDocs", {"href", "https://hexdocs.pm/"}}]

এই পদ্ধতি আপনাকে HTML ডকুমেন্টগুলি দক্ষভাবে নেভিগেট এবং পার্স করতে সাহায্য করে, Elixir অ্যাপ্লিকেশনগুলিতে ওয়েব ডেটা এক্সট্রাকশন এবং ম্যানিপুলেশন টাস্কগুলি সোজা করে দেয়।