الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

LINQ to XML

بدأه AhmedElbaz في 13 نوفمبر 2008 · 3 رد · 806 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

كان الهدف الرئيسي من اضافة Microsoft لل LINQ في farmework 3.5 هو توحيد طريقة التعامل مع مصادر البيانات المختلفة بحيث انك تكتب نفس الكود للتعامل مع ال Collections و الملفات و قواعد البيانات يعني توحيد واجهة مصادر البيانات المختلفة و ممكن الربط بينهم بسهولة

بالنسبة للموضوع LINQ to XML

كان في الاصدارات السابقة اما نستخدم System.XML classes او نستخدم ADO.NET dataset للتعامل مع ملفات ال XML

و لكن دعنا نري كيفية التعامل مع ملفات XML عن طريق LINQ

بفرض انا لدينا ملف XML يسمي Customers و نريد اضافة و تعديل و استرجاع البيانات الموجودة فيه بالشكل التالي :

<?xml version="1.0" encoding="utf-8" ?>
<Customers>

	<Customer>
		<Name>Ahmed</Name>
		<Age>23</Age>
	</Customer>

	<Customer>
		<Name>Mohammed</Name>
		<Age>25</Age>
	</Customer>

</Customers>

لاحظ بنخزن اسم العميل و السن مثلا

و بفرض ان فيه 2 textboxes و button لعملية الاضافة بالشكل التالي :

   Name:
	<asp:TextBox ID="txtName" runat="server" />

	Age:
	<asp:TextBox ID="txtAge" runat="server" />

	<asp:Button ID="butAdd" runat="server" Text="Add Customer" onclick="butAdd_Click" />

و نستخدم LINQ لاضافة عميل جديد بالشكل التالي (بتكلم علي اساس انك عارف LINQ لو مش عارف دور علي كتاب LINQ في الموضوع ده )

			//create System.Xml.Linq.XDocument from Customers.xml file
			XDocument xmlDoc = XDocument.Load(Server.MapPath("Customers.xml"));

			// add new Customer
			xmlDoc.Element("Customers").Add(new XElement("Customer", 
											new XElement("Name", txtName.Text),
											new XElement("Age", txtAge.Text)));

			// save
			xmlDoc.Save(Server.MapPath("Customers.xml"));

و ايضا القرأة من الملف و عرض البيانات في GridView بالشكل التالي :

		//create System.Xml.Linq.XDocument from Customers.xml file
		XDocument xmlDoc = XDocument.Load(Server.MapPath("Customers.xml"));

		// get customers
		var customers = from customer in xmlDoc.Descendants("Customer")
					  select new
					  {
						  Name = customer.Element("Name").Value,
						  Age = customer.Element("Age").Value,
					  };

		// bind customers to grid view
		gVCustomers.DataSource = customers;
		gVCustomers.DataBind();

شوف المثال ده LinqToXml.zip

#2

ومازلنا نستمر في عملية التيسير

شكراً أخ أحمد على الشرح

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#3

أضحك الله سنك يا ابو حميد ربنا يبارك فيك ويرزقك الخلف الصالح انت انسان طيب بارك الله فيك دمت فى حفظ الله

تم تعديل هذه المشاركة بواسطة objectOrienteD في 13 نوفمبر 2008 في 20:42

ولدي إليك وصيتي عهد الأسودْ

العز غايتنا نعيش لكي نسود

و عريننا في الأرض معروف الحدود

فاحم العرين و صنه عن عبث القرود

أظفارنا للمجد قد خُلقت فدى

و نيوبنا سُنَّت بأجساد العدى

و زئيرنا في الأرض مرهوب الصدى

نعلي على جثث الأعادي السؤددا

#4

شكرا لك

هل فيه إمكانية تعديل ( تحديث ) للبيانات المخزنة في ملف XML

460.gif

مواضيع مشابهة