در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

خواندن فایل XML در سی شارپ به صورت مستقیم

به نام خدا

در این پست ، با خواندن فایل XML در سی شارپ توسط LINQ To XML آشنا خواهید شد. زیبایی کار در اینجاست که شما با استفاده از زبان SQL دارید یک فایل متنی را مورد خطاب قرار می دهید و دیگر در اینجاخبری از Table نیست.

نکات :

1- هر تگ در فایل XML یک Node نام دارد . برای خواندن یک Node به صورت زیر عمل شده است : (جستجو)

برای مثال Name یا Contact هر کدام یک Tag هستند و Name از فرزندان Contact است . هر تگ ممکن است یک Attribute یا صفت داشته باشد . برای مثال در فایل برنامه، یک صفت به نام Type با مقادیر Home یا Mobile برای تگ Phone تعریف شده است . در نهایت ، کد مربوط یه جستجو عبارت است از :

string _Name = txtName.Text;
string _Family = txtFamily.Text;
var phone = from x in 
 document.Elements("Phonebook").Elements("Contact")
 from p in x.Elements("Phone")
 where
 x.Element("Name").Value.ToString() == _Name &&
 x.Element("Family").Value.ToString() == _Family
 && p.Attribute("Type").Value =="Home"
 select
 p.Value.ToString();

همانطور که در بالا مشهود است ، دو عدد select زده ایم ، یک بر روی Contact ها و دیگر بر روی Phone ها، و آن Contact ی که نامش با نامی که کاربر وارد کرده است و فامیلشان با فامیلی که کاربر وارد کرده است را و نیز شماره تلفن ثابتش را انتخاب می کنیم و در Phone ذخیره می کنیم.

2- برای ذخیره کرده به صورت زیر عمل می کنیم :

XElement XName = new XElement("Name");
XElement XFamily = new XElement("Family");
XElement XPhone = new XElement("Phone");
XElement XMobile = new XElement("Phone");

XMobile.SetAttributeValue("Type", "Mobile");
XPhone.SetAttributeValue("Type", "Home");

XName.Value = txtName.Text;
XFamily.Value = txtFamily.Text;
XPhone.Value = txtPhone.Text;
XMobile.Value = txtMobile.Text;

XElement ContactNode = new XElement("Contact");
ContactNode.Add(XName);
ContactNode.Add(XFamily);
ContactNode.Add(XPhone);
ContactNode.Add(XMobile);
            

document.Descendants("Phonebook").Last().Add(ContactNode);
MessageBox.Show("Data saved", "OK", 
      MessageBoxButtons.OK, MessageBoxIcon.Information);

document.Save(Application.StartupPath + "\\Contacts.xml");

همانطور که در کد فوق مشخص است ، یک مخاطب جدید به صورت Bottom Up ایجاد شده است. یعنی اول فرزندان آن ایجاد شده است و بعد کل مخاطب اضافه شده است . یعنی در چهار خط اول ، مشخصات یا فرزندان درخت ایجاد شده اند سپس یک گره که مانند ریشه عمل میکتد و این چهار فرزند را در برمیگیرد ، ایجاد میشود و این گره در فایل اصلی اضافه میشود.

#آموزش_سی_شارپ #xml_در_c# #linq_در_c#
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....