JSoup লাইব্রেরিতে, Elements এবং Nodes হলো দুটি গুরুত্বপূর্ণ ধারণা যা HTML ডকুমেন্টে থাকা বিভিন্ন উপাদান এবং তাদের সম্পর্ককে বোঝায়। এগুলোর মধ্যে পার্থক্য এবং ব্যবহার সম্পর্কে বিস্তারিত জানানো হলো।
Nodes
HTML ডকুমেন্ট একটি DOM (Document Object Model) গঠন অনুযায়ী তৈরি হয়, যেখানে প্রতিটি উপাদান (tag) একটি Node হিসেবে পরিগণিত হয়। JSoup এর মধ্যে একটি Node হল HTML ডকুমেন্টের একক অংশ যা বিভিন্ন ধরনের হতে পারে, যেমন:
- Element Node: HTML ট্যাগ (যেমন
<div>,<a>,<p>, ইত্যাদি) - Text Node: HTML ট্যাগের মধ্যে থাকা পাঠ্য (যেমন
<p>Hello World</p>এর "Hello World") - Comment Node: HTML কমেন্ট (যেমন
<!-- This is a comment -->) - Document Node: পুরো HTML ডকুমেন্ট
প্রত্যেকটি Node এর একটি পিতামাতা (parent) এবং একটি বা একাধিক সন্তানের (child) নোড থাকতে পারে। JSoup এ Node একটি সাধারণ অবজেক্ট হিসেবে কাজ করে, যেটি বিভিন্ন HTML উপাদানকে উপস্থাপন করে।
উদাহরণ
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
public class NodeExample {
public static void main(String[] args) throws Exception {
String html = "<html><head><title>Example</title></head><body><p>This is a paragraph.</p></body></html>";
// HTML পার্সিং
Document doc = Jsoup.parse(html);
// Node হিসেবে Element এক্সট্র্যাক্ট
Element paragraph = doc.select("p").first();
System.out.println("Text in paragraph: " + paragraph.text());
}
}
এখানে, <p> ট্যাগ একটি Node হিসেবে Element অবজেক্টে রূপান্তরিত হয়।
Elements
JSoup এ Elements হল Node গুলোর একটি সংগ্রহ বা লিস্ট। এটি একটি কন্টেইনারের মতো কাজ করে যেখানে একাধিক Element রাখা হয়। Elements একটি List এর মতো আচরণ করে, এবং আপনি Elements এর মধ্যে থাকা প্রতিটি Element এর উপর কাজ করতে পারেন।
উদাহরণ
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class ElementsExample {
public static void main(String[] args) throws Exception {
String html = "<html><head><title>Example</title></head><body><p>Paragraph 1</p><p>Paragraph 2</p></body></html>";
// HTML পার্সিং
Document doc = Jsoup.parse(html);
// Elements হিসেবে সকল <p> ট্যাগ এক্সট্র্যাক্ট করা
Elements paragraphs = doc.select("p");
// সকল <p> ট্যাগের পাঠ্য প্রদর্শন
for (Element paragraph : paragraphs) {
System.out.println(paragraph.text());
}
}
}
এখানে, Elements অবজেক্টটি দুটি <p> ট্যাগ ধারণ করে এবং আমরা তাদের পাঠ্য প্রদর্শন করেছি।
Elements এবং Nodes এর মধ্যে পার্থক্য
Nodes
Nodeএকটি একক HTML উপাদান বা তার উপাদান সম্পর্কিত তথ্য।- একটি
NodeHTML ডকুমেন্টের একটি অংশ হতে পারে, যেমনElement,Text,Comment, ইত্যাদি। - একটি
Nodeপিতামাতা-সন্তান সম্পর্কের অংশ হতে পারে।
Elements
Elementsহল একাধিকElementএর একটি সংগ্রহ বা লিস্ট।- এটি একটি
Listঅবজেক্টের মতো আচরণ করে যা একাধিকElementধারণ করে। Elementsবিভিন্নNodeএর উপর কাজ করার জন্য একটি কন্টেইনার হিসেবে ব্যবহৃত হয়।
সারাংশ
JSoup এ Nodes এবং Elements এর মধ্যে একটি মৌলিক পার্থক্য রয়েছে। Node হল একক HTML উপাদান, যেমন একটি ট্যাগ, পাঠ্য বা কমেন্ট, যা DOM (Document Object Model) এর অংশ। অপরদিকে, Elements হল একাধিক Element এর সংগ্রহ, যেখানে আমরা একাধিক Node এর উপরে কাজ করতে পারি। JSoup এ এই দুটি ধারণা ব্যবহৃত হয় HTML ডকুমেন্টের বিভিন্ন অংশ নিয়ে কাজ করতে এবং তথ্য এক্সট্র্যাক্ট করতে।
Read more