LINQ to XML হল LINQ (Language Integrated Query) এর একটি শক্তিশালী ফিচার যা XML ডেটা পরিচালনা এবং কুয়েরি করার জন্য ব্যবহৃত হয়। এটি C# বা .NET ভাষার মধ্যে XML ডেটার সাথে কাজ করার জন্য একটি সহজ এবং উচ্চস্তরের API সরবরাহ করে, যা XML ডেটাকে কুয়েরি, ফিল্টার, এবং প্রক্রিয়া করার কাজে সহায়ক।
LINQ to XML ব্যবহারের মাধ্যমে আপনি XML ডকুমেন্টের ভিতরে থাকা উপাদান (elements), অ্যাট্রিবিউট (attributes), এবং টেক্সট কন্টেন্ট কুয়েরি এবং ম্যানিপুলেট করতে পারবেন, খুবই সহজ এবং প্রাকৃতিকভাবে C# কোডে।
LINQ to XML ব্যবহার করতে হলে, প্রথমে System.Xml.Linq নেমস্পেসটি রেফারেন্স করতে হয়। এটি XML ডেটা ম্যানিপুলেশনের জন্য প্রয়োজনীয় ক্লাসগুলো সরবরাহ করে, যেমন XDocument
, XElement
, XAttribute
, ইত্যাদি।
XDocument
ক্লাস ব্যবহার করে XML ডকুমেন্ট লোড করা হয়। XML ফাইলটি লোড করার জন্য আপনি XDocument.Load()
মেথড ব্যবহার করতে পারেন।
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 ফাইল লোড করা হয়েছে।
LINQ to XML ব্যবহার করে আপনি XML ডেটা কুয়েরি করতে পারেন, যেমন XML ডকুমেন্ট থেকে নির্দিষ্ট উপাদান বা অ্যাট্রিবিউট বের করা।
ধরা যাক, আমাদের কাছে একটি 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.Xml.Linq;
using System.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
: প্রতিটি Book
উপাদানের Title
উপাদানটির মান (value) বের করে।LINQ to XML দিয়ে XML ডেটা ফিল্টারও করা যায়। ধরুন, আপনি যদি Price
এর ভিত্তিতে বইগুলো ফিল্টার করতে চান, তাহলে Where
ক্লজ ব্যবহার করা যাবে।
Price
এর ভিত্তিতে বই ফিল্টার করাusing System;
using System.Xml.Linq;
using System.Linq;
class Program
{
static void Main()
{
// XML ডকুমেন্ট লোড করা
XDocument doc = XDocument.Load("books.xml");
// LINQ to XML ব্যবহার করে 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
: Price
এর মান 30 ডলারের বেশি এমন বইগুলো ফিল্টার করছে।LINQ to XML এর মাধ্যমে আপনি XML ডেটা আপডেটও করতে পারেন, যেমন নতুন উপাদান যোগ করা, বিদ্যমান উপাদান মুছে ফেলা বা পরিবর্তন করা।
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ডকুমেন্ট লোড করা
XDocument doc = XDocument.Load("books.xml");
// নতুন বই যোগ করা
XElement newBook = new XElement("Book",
new XElement("Title", "C# for Beginners"),
new XElement("Author", "Alice Brown"),
new XElement("Price", "19.99")
);
doc.Element("Books").Add(newBook);
// আপডেট করা XML ডকুমেন্ট দেখানো
doc.Save("updated_books.xml");
Console.WriteLine("New book added!");
}
}
এখানে:
XElement
ব্যবহার করে নতুন Book
উপাদান তৈরি করা হয়েছে।doc.Element("Books").Add(newBook)
এর মাধ্যমে নতুন বইটি Books
উপাদানের মধ্যে যোগ করা হয়েছে।doc.Save("updated_books.xml")
: আপডেট করা XML ফাইল সেভ করা হয়েছে।LINQ to XML ব্যবহার করে XML ডেটার নির্দিষ্ট অংশ মুছতেও পারেন। যেমন, যদি একটি নির্দিষ্ট বই মুছে ফেলতে চান:
using System;
using System.Xml.Linq;
using System.Linq;
class Program
{
static void Main()
{
// XML ডকুমেন্ট লোড করা
XDocument doc = XDocument.Load("books.xml");
// `Title` এর মান "Learn C#" এর বইটি মুছে ফেলা
var bookToRemove = doc.Descendants("Book")
.FirstOrDefault(book => book.Element("Title").Value == "Learn C#");
if (bookToRemove != null)
{
bookToRemove.Remove();
}
// আপডেট করা XML ডকুমেন্ট দেখানো
doc.Save("updated_books.xml");
Console.WriteLine("Book removed!");
}
}
এখানে:
FirstOrDefault(book => book.Element("Title").Value == "Learn C#")
: Title
এর মান "Learn C#"
এর বইটি খুঁজে বের করা হয়েছে।bookToRemove.Remove()
: বইটি মুছে ফেলা হয়েছে।LINQ to XML একটি শক্তিশালী টুল যা XML ডেটা কুয়েরি, ফিল্টার, ম্যানিপুলেট এবং ম্যানেজ করতে ব্যবহৃত হয়। এটি XML ডেটাকে C# কোডের মধ্যে খুব সহজভাবে একত্রিত করে, যা ডেভেলপারদের XML ডেটার সাথে কাজ করতে অনেক সহজ করে তোলে।
LINQ to XML একটি শক্তিশালী টুল যা আপনাকে XML ডেটা এর সাথে কাজ করতে সাহায্য করে। এটি XML ডেটাকে লিঙ্গুয়িস্টিকলি (language-integrated) প্রশ্ন করার ক্ষমতা প্রদান করে, যার মাধ্যমে আপনি সহজে XML ডেটাকে লোড, কোয়েরি, মডিফাই এবং সেভ করতে পারেন। LINQ to XML ব্যবহার করে XML ডেটা প্রক্রিয়াকরণ অনেক বেশি কার্যকর এবং সহজ হয়ে যায়, কারণ এটি Query Syntax বা Method Syntax ব্যবহার করে কাজ করতে পারে, যেহেতু এটি LINQ-এর অংশ।
LINQ to XML-এ XML ডকুমেন্টের উপাদানগুলো (এলিমেন্ট, অ্যাট্রিবিউট, টেক্সট ইত্যাদি) কে প্রশ্ন করা এবং পরিচালনা করা সম্ভব হয়।
LINQ to XML ব্যবহার করতে System.Xml.Linq নামস্পেসটি ব্যবহার করতে হয়।
using System;
using System.Linq;
using System.Xml.Linq;
আপনি একটি XML ফাইল বা স্ট্রিং থেকে ডেটা লোড করতে পারেন XDocument.Load() বা XElement.Parse() ব্যবহার করে। এই পদ্ধতিতে XML ডেটা লোড করা হয় এবং তারপরে LINQ কোয়েরি দ্বারা এর উপাদানগুলোর সাথে কাজ করা যায়।
XDocument doc = XDocument.Load("file.xml");
string xmlString = "<People><Person><Name>Alice</Name><Age>25</Age></Person><Person><Name>Bob</Name><Age>30</Age></Person></People>";
XDocument doc = XDocument.Parse(xmlString);
XML ডেটার উপর LINQ কোয়েরি ব্যবহার করে নির্দিষ্ট উপাদান বা মান বের করা যেতে পারে। LINQ কোয়েরি সিম্পল SQL-styled কোডের মতো।
XDocument doc = XDocument.Load("file.xml");
var names = from person in doc.Descendants("Person")
select person.Element("Name").Value;
foreach (var name in names)
{
Console.WriteLine(name); // Output: Alice, Bob
}
এখানে, Descendants("Person")
দ্বারা সব Person এলিমেন্ট গুলি নির্বাচন করা হয়েছে এবং তারপর Name এলিমেন্টের মান নেওয়া হয়েছে।
XML ডেটাতে অ্যাট্রিবিউটও থাকে, যা এলিমেন্টের অতিরিক্ত তথ্য প্রদান করে। LINQ to XML এ অ্যাট্রিবিউটের মানও খুব সহজে প্রশ্ন করা যায়।
XDocument doc = XDocument.Load("file.xml");
var personDetails = from person in doc.Descendants("Person")
where person.Attribute("id").Value == "1"
select new
{
Name = person.Element("Name").Value,
Age = person.Element("Age").Value
};
foreach (var detail in personDetails)
{
Console.WriteLine($"Name: {detail.Name}, Age: {detail.Age}");
}
এখানে, Attribute("id") ব্যবহার করে নির্দিষ্ট id
অ্যাট্রিবিউটের মান অনুযায়ী Person এলিমেন্টগুলি ফিল্টার করা হয়েছে।
LINQ to XML ব্যবহার করে আপনি XML ডেটা পরিবর্তন (যেমন এলিমেন্ট বা অ্যাট্রিবিউট যোগ, অপসারণ, বা সংশোধন) করতে পারেন।
XDocument doc = XDocument.Load("file.xml");
doc.Element("People").Add(new XElement("Person",
new XElement("Name", "Charlie"),
new XElement("Age", "40")));
doc.Save("file.xml");
এখানে, একটি নতুন Person এলিমেন্ট যোগ করা হয়েছে যেখানে নাম এবং বয়স উল্লেখ করা হয়েছে।
XML ডেটা পরিবর্তন বা আপডেট করার পর আপনি সেই ডেটাকে আবার একটি ফাইলে বা স্ট্রিমে সংরক্ষণ করতে পারেন।
XDocument doc = XDocument.Load("file.xml");
// XML ডেটা পরিবর্তন
doc.Element("People").Add(new XElement("Person",
new XElement("Name", "David"),
new XElement("Age", "45")));
// পরিবর্তিত XML ডেটা ফাইলে সেভ করা
doc.Save("file.xml");
এখানে, Save()
মেথড ব্যবহার করে পরিবর্তিত XML ফাইলটিকে সেভ করা হয়েছে।
LINQ to XML ডেভেলপারদের জন্য একটি শক্তিশালী এবং সহজ উপায় XML ডেটা ম্যানিপুলেট এবং কোয়েরি করার জন্য। এটি XML ডেটাকে সরল, আধুনিক এবং ফাংশনাল কোডে ম্যানেজ করতে সহায়তা করে, যা ডেটা এনালাইসিস, রিপোর্টিং, কনফিগারেশন ফাইল প্রসেসিং ইত্যাদির জন্য খুবই কার্যকর।
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 এর মাধ্যমে সহজ এবং প্রাকৃতিকভাবে করা যায়।
XML (eXtensible Markup Language) ডেটার একটি জনপ্রিয় বিন্যাস যা ডেটা স্টোরেজ এবং ট্রান্সমিশনের জন্য ব্যবহৃত হয়। যখন XML ডেটাকে আপডেট বা মডিফাই করতে হয়, তখন C# এ বেশ কিছু সরঞ্জাম এবং লাইব্রেরি রয়েছে, যেমন LINQ to XML এবং XmlDocument। এই টিউটোরিয়ালে, আমরা দেখব কিভাবে LINQ to XML এবং XmlDocument ব্যবহার করে XML ডেটা আপডেট এবং মডিফাই করা যায়।
LINQ to XML হল C# এ একটি শক্তিশালী টুল যা XML ডেটাকে কুয়েরি ও ম্যানিপুলেট করতে সহায়তা করে। LINQ to XML ব্যবহার করে XML ডেটা সহজে পড়া, লেখা এবং আপডেট করা সম্ভব।
ধরা যাক আমাদের একটি XML ফাইল রয়েছে যেটি বিভিন্ন পণ্যের তথ্য ধারণ করে, এবং আমরা একটি পণ্যের মূল্য আপডেট করতে চাই।
<Products>
<Product>
<ID>1</ID>
<Name>Laptop</Name>
<Price>50000</Price>
</Product>
<Product>
<ID>2</ID>
<Name>Smartphone</Name>
<Price>25000</Price>
</Product>
<Product>
<ID>3</ID>
<Name>Tablet</Name>
<Price>30000</Price>
</Product>
</Products>
আমরা চাই, ID=2 পণ্যের Price পরিবর্তন করে 22000 করতে।
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML লোড করা
XDocument doc = XDocument.Load("products.xml");
// ID=2 এর পণ্যের Price আপডেট করা
var product = doc.Descendants("Product")
.Where(p => (int)p.Element("ID") == 2)
.FirstOrDefault();
if (product != null)
{
product.Element("Price").Value = "22000"; // Price পরিবর্তন করা
}
// XML ফাইলটি সেভ করা
doc.Save("products_updated.xml");
Console.WriteLine("XML আপডেট হয়েছে।");
}
}
ব্যাখ্যা:
XDocument.Load()
দিয়ে XML ডেটা লোড করা হয়েছে।Descendants("Product")
দিয়ে সকল পণ্যের মধ্যে থেকে ID=2 এর পণ্য নির্বাচন করা হয়েছে।.FirstOrDefault()
দিয়ে প্রথম মেলানো পণ্যটি নেওয়া হয়েছে।.Element("Price").Value
দিয়ে Price এর মান পরিবর্তন করা হয়েছে।doc.Save()
দিয়ে XML ফাইল সেভ করা হয়েছে।আউটপুট XML:
<Products>
<Product>
<ID>1</ID>
<Name>Laptop</Name>
<Price>50000</Price>
</Product>
<Product>
<ID>2</ID>
<Name>Smartphone</Name>
<Price>22000</Price>
</Product>
<Product>
<ID>3</ID>
<Name>Tablet</Name>
<Price>30000</Price>
</Product>
</Products>
XmlDocument হল .NET-এর পুরনো XML ম্যানিপুলেশন API যা XML ডেটা পড়তে, লেখতে এবং মডিফাই করতে ব্যবহৃত হয়। এটি ডোম (DOM) পদ্ধতির উপর ভিত্তি করে কাজ করে, যেখানে XML ডেটার প্রতিটি উপাদান একটি অবজেক্ট হিসেবে লোড হয়।
আমরা পূর্বের XML ডেটাতে ID=3 এর Price আপডেট করতে চাই।
using System;
using System.Xml;
class Program
{
static void Main()
{
// XmlDocument লোড করা
XmlDocument doc = new XmlDocument();
doc.Load("products.xml");
// ID=3 এর পণ্য নির্বাচন করা
XmlNode product = doc.SelectSingleNode("//Product[ID=3]");
if (product != null)
{
// Price এর মান পরিবর্তন করা
XmlNode priceNode = product.SelectSingleNode("Price");
if (priceNode != null)
{
priceNode.InnerText = "28000"; // Price পরিবর্তন করা
}
}
// XML ফাইল সেভ করা
doc.Save("products_updated.xml");
Console.WriteLine("XML আপডেট হয়েছে।");
}
}
ব্যাখ্যা:
doc.Load()
দিয়ে XML ডেটা লোড করা হয়েছে।SelectSingleNode()
দিয়ে XML ডেটাতে XPath এর মাধ্যমে সঠিক Product নির্বাচন করা হয়েছে (এখানে ID=3
সিলেক্ট করা হয়েছে)।.InnerText
দিয়ে Price এর মান পরিবর্তন করা হয়েছে।doc.Save()
দিয়ে XML ফাইল সেভ করা হয়েছে।আউটপুট XML:
<Products>
<Product>
<ID>1</ID>
<Name>Laptop</Name>
<Price>50000</Price>
</Product>
<Product>
<ID>2</ID>
<Name>Smartphone</Name>
<Price>25000</Price>
</Product>
<Product>
<ID>3</ID>
<Name>Tablet</Name>
<Price>28000</Price>
</Product>
</Products>
LINQ to XML এবং XmlDocument দুটোই XML ডেটা ম্যানিপুলেশন এর জন্য শক্তিশালী সরঞ্জাম। যদি আপনি একটি আধুনিক, কোড লেখায় সহজ এবং কমপ্যাক্ট পদ্ধতি চান, তবে LINQ to XML ব্যবহার করা উচিত। তবে যদি আপনি পুরনো .NET অ্যাপ্লিকেশন বা DOM-based ম্যানিপুলেশন করতে চান, তবে XmlDocument একটি ভালো অপশন হতে পারে।
C#-এ XML ডকুমেন্ট তৈরি এবং সংরক্ষণ করার জন্য বেশ কিছু লাইব্রেরি রয়েছে, যার মধ্যে System.Xml
নেমস্পেসের ক্লাসগুলি সবচেয়ে জনপ্রিয়। XML ডকুমেন্ট তৈরি করার জন্য XmlDocument
বা XDocument
ক্লাস ব্যবহার করা যায়, তবে XDocument
অধিক আধুনিক এবং LINQ সাপোর্ট করে, তাই এটি বর্তমানে বেশি ব্যবহৃত হয়।
এখানে XDocument
ব্যবহার করে XML ডকুমেন্ট তৈরি করা এবং সংরক্ষণের প্রক্রিয়া ব্যাখ্যা করা হবে।
XDocument
ব্যবহার করে XML ডকুমেন্ট তৈরি করাXDocument
ক্লাস দিয়ে সহজেই XML ডকুমেন্ট তৈরি করা যায়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে একটি পণ্য সম্পর্কিত তথ্য (Product) XML ফরম্যাটে সংরক্ষণ করা হয়েছে।
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XDocument তৈরি করা
XDocument doc = new XDocument(
new XElement("Products", // Root element
new XElement("Product", // First Product element
new XElement("ProductID", 1),
new XElement("ProductName", "Product1"),
new XElement("Category", "Category1"),
new XElement("Price", 20.5)
),
new XElement("Product", // Second Product element
new XElement("ProductID", 2),
new XElement("ProductName", "Product2"),
new XElement("Category", "Category1"),
new XElement("Price", 30.0)
),
new XElement("Product", // Third Product element
new XElement("ProductID", 3),
new XElement("ProductName", "Product3"),
new XElement("Category", "Category2"),
new XElement("Price", 15.5)
)
)
);
// XML ডকুমেন্ট সংরক্ষণ করা
doc.Save("products.xml");
Console.WriteLine("XML file has been saved as 'products.xml'.");
}
}
ব্যাখ্যা:
XElement
ব্যবহার করে XML ট্যাগ তৈরি করা হয়।products.xml
নামে XML ফাইলটি সংরক্ষিত হবে।আউটপুট (XML ফাইল):
<Products>
<Product>
<ProductID>1</ProductID>
<ProductName>Product1</ProductName>
<Category>Category1</Category>
<Price>20.5</Price>
</Product>
<Product>
<ProductID>2</ProductID>
<ProductName>Product2</ProductName>
<Category>Category1</Category>
<Price>30</Price>
</Product>
<Product>
<ProductID>3</ProductID>
<ProductName>Product3</ProductName>
<Category>Category2</Category>
<Price>15.5</Price>
</Product>
</Products>
এটি একটি সাধারণ XML ডকুমেন্ট, যেখানে Products রুট এলিমেন্ট হিসেবে রয়েছে এবং এর অধীনে একাধিক Product এলিমেন্ট রয়েছে।
একটি XML ডকুমেন্ট যদি আগে থেকেই সংরক্ষিত থাকে, তাহলে নতুন ডেটা সংযোজন করার জন্য XDocument
ব্যবহার করা যেতে পারে।
using System;
using System.Xml.Linq;
class Program
{
static void Main()
{
// বিদ্যমান XML ফাইল লোড করা
XDocument doc = XDocument.Load("products.xml");
// নতুন পণ্য যোগ করা
doc.Root.Add(
new XElement("Product",
new XElement("ProductID", 4),
new XElement("ProductName", "Product4"),
new XElement("Category", "Category2"),
new XElement("Price", 25.0)
)
);
// পরিবর্তিত XML ডকুমেন্ট পুনরায় সংরক্ষণ করা
doc.Save("products.xml");
Console.WriteLine("New product has been added to the XML file.");
}
}
ব্যাখ্যা:
এখন products.xml
ফাইলটি নতুন পণ্য সহ আপডেট হবে।
XML ডকুমেন্ট থেকে ডেটা পড়তে LINQ to XML ব্যবহার করা হয়। উদাহরণস্বরূপ, XML ফাইল থেকে পণ্যের নাম এবং দাম বের করা:
using System;
using System.Linq;
using System.Xml.Linq;
class Program
{
static void Main()
{
// XML ফাইল লোড করা
XDocument doc = XDocument.Load("products.xml");
// LINQ কুয়েরি দিয়ে পণ্যের নাম এবং দাম বের করা
var productInfo = from product in doc.Descendants("Product")
select new
{
ProductName = product.Element("ProductName").Value,
Price = product.Element("Price").Value
};
// ফলাফল প্রিন্ট করা
foreach (var product in productInfo)
{
Console.WriteLine($"Product Name: {product.ProductName}, Price: {product.Price}");
}
}
}
আউটপুট:
Product Name: Product1, Price: 20.5
Product Name: Product2, Price: 30
Product Name: Product3, Price: 15.5
Product Name: Product4, Price: 25
এখানে Descendants("Product")
ব্যবহার করে সব Product এলিমেন্ট থেকে ডেটা একত্রিত করা হয়েছে এবং Element("ProductName")
ও Element("Price")
দিয়ে পণ্যের নাম এবং দাম বের করা হয়েছে।
C#-এ XML ডকুমেন্ট তৈরি করা এবং সংরক্ষণ করা খুবই সহজ, বিশেষ করে XDocument ক্লাস ব্যবহার করে। XML ফাইল তৈরি, ডেটা সংযোজন এবং তথ্য পড়ার জন্য LINQ to XML একটি অত্যন্ত শক্তিশালী এবং সহজ পদ্ধতি। XDocument
এর মাধ্যমে আপনি XML ডকুমেন্টের কার্যকরী পরিচালনা করতে পারবেন, যা বিভিন্ন ডেটা স্টোরেজ এবং এক্সচেঞ্জের জন্য অত্যন্ত কার্যকরী।
common.read_more