loading...
برنامه نویسان آینده
farsinejad بازدید : 580 سه شنبه 26 آذر 1392 نظرات (0)

 

به نام خدا

 

در این پست ، با خواندن فایل 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 ایجاد شده است. یعنی
اول فرزندان آن ایجاد شده است و بعد کل مخاطب اضافه شده است . یعنی در چهار خط اول ، مشخصات
یا فرزندان درخت ایجاد شده اند سپس یک گره که مانند ریشه عمل میکتد و این چهار فرزند را در برمیگیرد ، ایجاد
میشود و این گره در فایل اصلی اضافه میشود.
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • استخدام پاره وقت


    آمار سایت
  • کل مطالب : 38
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 56
  • آی پی امروز : 25
  • آی پی دیروز : 2
  • بازدید امروز : 33
  • باردید دیروز : 3
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 115
  • بازدید ماه : 89
  • بازدید سال : 448,875
  • بازدید کلی : 759,047
  • کدهای اختصاصی