LINQ to XML দিয়ে XML ডেটা লোড এবং কুয়েরি করা অত্যন্ত সহজ। আপনি যখন XML ডেটা লোড করেন, তখন LINQ-এর মাধ্যমে খুব সহজে XML ডেটার উপাদানগুলোকে ফিল্টার, পরিবর্তন এবং অনুসন্ধান করতে পারেন।
LINQ to XML ব্যবহার করতে আপনাকে System.Xml.Linq নামস্পেস ইনক্লুড করতে হয়, যার মধ্যে XDocument
এবং XElement
ক্লাসগুলি থাকে। XDocument
ক্লাসটি পুরো XML ডকুমেন্ট রিপ্রেজেন্ট করে এবং XElement
একটি নির্দিষ্ট XML এলিমেন্টের রিপ্রেজেন্টেশন।
XML ডেটা লোড করার জন্য আপনি XDocument.Load() অথবা XElement.Parse() মেথড ব্যবহার করতে পারেন।
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ফাইল লোড করা
XDocument doc = XDocument.Load("books.xml");
// XML ডেটা প্রিন্ট করা
Console.WriteLine(doc);
}
}
এখানে, "books.xml"
ফাইল থেকে XML ডেটা লোড করা হয়েছে এবং প্রিন্ট করা হয়েছে।
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML স্ট্রিং লোড করা
string xmlString = "<Books><Book><Title>Learn C#</Title><Author>John Doe</Author><Price>29.99</Price></Book><Book><Title>Advanced C#</Title><Author>Jane Smith</Author><Price>49.99</Price></Book></Books>";
XDocument doc = XDocument.Parse(xmlString);
// XML ডেটা প্রিন্ট করা
Console.WriteLine(doc);
}
}
এখানে, একটি XML স্ট্রিং সরাসরি লোড করে XML ডেটা প্রিন্ট করা হয়েছে।
LINQ to XML ব্যবহার করে XML ডেটার উপাদানগুলির সাথে কুয়েরি করা সম্ভব। এটি অত্যন্ত শক্তিশালী এবং সহজ একটি টুল। XML ডেটাতে সাধারণত ডকুমেন্টের নোডগুলি (যেমন <Book>
, <Title>
, <Author>
, ইত্যাদি) খুঁজে বের করা হয় এবং তাদের ওপর LINQ কুয়েরি প্রয়োগ করা হয়।
ধরা যাক, আমাদের কাছে নিচের মতো একটি XML ডেটা রয়েছে:
<Books>
<Book>
<Title>Learn C#</Title>
<Author>John Doe</Author>
<Price>29.99</Price>
</Book>
<Book>
<Title>Advanced C#</Title>
<Author>Jane Smith</Author>
<Price>49.99</Price>
</Book>
</Books>
এখন, আমরা এই XML ডেটা থেকে বইয়ের টাইটেল বের করতে চাই।
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ফাইল লোড করা
XDocument doc = XDocument.Load("books.xml");
// LINQ to XML ব্যবহার করে বইয়ের টাইটেল বের করা
var titles = from book in doc.Descendants("Book")
select book.Element("Title").Value;
foreach (var title in titles)
{
Console.WriteLine(title); // Output: Learn C#, Advanced C#
}
}
}
এখানে, Descendants("Book")
মেথডের মাধ্যমে সব Book
এলিমেন্টগুলোকে বের করা হচ্ছে এবং Element("Title").Value
দিয়ে Title
এলিমেন্টের মান নেওয়া হচ্ছে।
LINQ to XML এর মাধ্যমে আপনি নির্দিষ্ট শর্তে XML ডেটা ফিল্টার করতে পারেন। যেমন, Price
এর মান ৩০ এর বেশি এমন বইগুলো ফিল্টার করা।
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ফাইল লোড করা
XDocument doc = XDocument.Load("books.xml");
// LINQ to XML ব্যবহার করে Price 30 এর বেশি এমন বইগুলো ফিল্টার করা
var expensiveBooks = from book in doc.Descendants("Book")
where (decimal)book.Element("Price") > 30
select book.Element("Title").Value;
foreach (var title in expensiveBooks)
{
Console.WriteLine(title); // Output: Advanced C#
}
}
}
এখানে, where (decimal)book.Element("Price") > 30
শর্তে ব্যবহার করে শুধুমাত্র ৩০ এর বেশি মূল্য বিশিষ্ট বইগুলো নির্বাচন করা হয়েছে।
XML ডেটায় এলিমেন্টের পাশাপাশি অ্যাট্রিবিউটও থাকতে পারে। LINQ to XML এ অ্যাট্রিবিউটের মান বের করাও সম্ভব।
ধরা যাক, আমাদের XML ডেটাতে প্রতিটি Book
এর একটি id
অ্যাট্রিবিউট রয়েছে:
<Books>
<Book id="1">
<Title>Learn C#</Title>
<Author>John Doe</Author>
<Price>29.99</Price>
</Book>
<Book id="2">
<Title>Advanced C#</Title>
<Author>Jane Smith</Author>
<Price>49.99</Price>
</Book>
</Books>
এখন, আমরা id
অ্যাট্রিবিউটের মান দিয়ে বইয়ের তথ্য বের করতে চাই।
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ফাইল লোড করা
XDocument doc = XDocument.Load("books.xml");
// LINQ to XML ব্যবহার করে id = 1 এর বইয়ের টাইটেল বের করা
var book = from b in doc.Descendants("Book")
where b.Attribute("id").Value == "1"
select new
{
Title = b.Element("Title").Value,
Author = b.Element("Author").Value
};
foreach (var b in book)
{
Console.WriteLine($"Title: {b.Title}, Author: {b.Author}"); // Output: Title: Learn C#, Author: John Doe
}
}
}
এখানে, Attribute("id").Value
ব্যবহার করে id="1"
অ্যাট্রিবিউটের মান অনুসারে ফিল্টার করা হয়েছে এবং বইয়ের টাইটেল এবং লেখক নাম বের করা হয়েছে।
LINQ to XML দিয়ে XML ডেটা লোড এবং কুয়েরি করা অত্যন্ত সহজ। এটি XML ডেটার মধ্যে বিভিন্ন অপারেশন করার জন্য একটি পরিষ্কার এবং কার্যকর উপায় প্রদান করে। XML ডেটা কুয়েরি, ফিল্টার, এবং পরিবর্তন করা LINQ এর মাধ্যমে সহজ এবং প্রাকৃতিকভাবে করা যায়।
common.read_more