1. Home
  2. »
  3. C#
  4. »
  5. XML در سی شارپ مثل آب خوردن +قدم به قدم
آموزش xml و کار با ان در سی شارپ

خلاصه این مطلب :

XML در سی شارپ مثل آب خوردن

XML در سی شارپ مثل آب خوردن

 

لینک منبع

سلام _ ی نکته رو ذکر کنم شاید زیاد ترتیب رعایت نشده باشه ولی سعی کردم تا جایی که ممکنه ساده بیان کنم مطالبو

فایل های xml  یک نوع فایل متنی است که قائده ی خاصی در انها وجود دارد . در این نوع فایل ها از تگ ها برای مشخص کردن اطلاعات استفاده میشه که تگ ها رو خودمون تعرف میکنیم برای مثال

برای ذخیره کردن سن یک نفر به این صورت عمل میکنیم

متن داخلی این دو تگ برابر با مقدار سن فرد مورد نظر است.

برا نشون دادن س میتونید هر چیزی رو تعریف کنید مثلا     <a>21</a>

تگها رو میشه تو در تو تعریف کرد برای مثال من اطلاعات کامل مربوط به یک شخص رو توی یک فایل xml میخوام ذخیره کنم ، توضیحشو بعدا میگم

 

 

یادتون باشه که xml   به بزرگ و کوچکی حروف حساس است

خط اول تعریف فایل به عنوان xml  هست

بیرونی ترین تگ به عنوان تگ ریشه شناخته میشه اینجا میشه Student

Xml دقیقا میشه پیاده سازی درخت و رابطه والد و فرزندی دارن

تا تگ فرزند بسته نشده نمیشه تگ والد رو بست ( در اینجا باید اول تگ های Name , Family , age  بسته بشن و بعد از اون Student  رو بست.)

میشه برا تگ ها  ویژگی هایی رو نیز در نظر گرفت

مثلا میشه اطلاعات همین دانش اموز رو به صورت زیر نشون داد

 

چون تگ مقدار داخلی نداره تگ رو بدون ذکر نام میبندیم به صورت بالا

فاصله ها در نظر گرفته نمیشه در فایل های xml

کد زیر برا کامنت گذاشتن استفاده میشه به جای comment   توضیحاتتون رو قرار میدین

<!–Comment –>

 

خب دیگه میریم سراغ کد نویسی توی سی شارپ برا تولید یک فایل xml

  1. اول باید یک فایل xml رو تولید کنین که میتونین با استفاده از visual studio
  2. Add new item رو انتخاب کنید و از اونجا  Xml File  رو انتخاب کرده و اسمشو وارد میکنید و add  رو بزنید تا فایل ساخته بشه
  3. xml رو به رفرنس هاتون اضافه کنید و using  system.xml  رو اضافه کنید

یک شی از نوع xmlDocument  ساخته میشه

 

من اینجا فایل xml  مورد نظرمو load  کردم با نام DurationType.xml که در مسیر برنامم قرار داره

 

یک شی از نوع xmlnode  به نام root تعریف کردیم که خاصیت documentElement  مربوط به Doc رو به اون نسبت دادیم . اگر توجه کنین مقدار بازگشتی DocumentElement  از نوع XmlNode  خواهد بود _ خاصیت DocumentElement مربوط به Doc  در واقع تگ ریشه رو برمیگردونه.

 

با استفاده از متد CreateElement(“Element”) یک تگ جدید تعریف میشه که در اینجا type  نام منطقی اون تگ هست که توی برنامه نویس ازش استفاده میشه و رشته ی ارسالی به متد ، همان مقداری است که تگ با اون نمایش داده میشه مثلا در اینجا ی همچین چیزی تولید میشه   <type></type>

خب تا اینجا تونستیم یک Node جدید تعریف کنیم حالا میخوایم این Node  رو به یکی

از Node ها اضافه کنیم در واقع میشه فرزند یکی از Node  ها

خب ابتدا یک مقدار به Node  ایجاد شده میدیم به این صورت

 

نتیجه به این صورت میشه      <type> mousa </type>

مثلا در اینجا میخوایم Node  ایجاد شده رو به root  اضافه کنیم

 

اگه به معانی هم توجه کنید مشخصه که چه اتفاقایی میافته در کد بالا یک فرزند با نام منطقی type  به Node  ریشه اضافه شده با استفاده از متد AppendChild()

خب بعد از ایجاد این تغییرات میخوایم فایل xml  به روزرسانی بشه با استفاده از متد Save

 

خب حالا میخوایم یک node  رو حذف کنیم از فایل :

 

 

تا خط دوم رو میتونید سراسری تعریف کنید که نیاز به تعریف دوباره نباشه

xmlNodeList  در واقع ارایه ای از  Node ها است که یک نمونه از اون با نام منطقی Types  تعریف شده

خاصیت ChildNodes تمام Node  های فرزند یک Node  رو تا یک مرحله برمیگردونه

 

 

با استفاده از این کد تمامی مقادیر xmlNode بررسی میشه و اون Node  که خاصیت innerText  ش همون چیزی که میخوایم حذف بشه ، بود با استفاده از متد RemoveChild(“Node Logic Name”)

اون Node  رو حذف میکنیم

و باز با استفاده از متد Save  تغییرات اعمال میشه

 

خب دیگه مطلب خاصی نمیمونه _ تابع زیر یک فایل xml  که فرزنداش تا یک مرحله هستن رو برمیگردونه چیز جدیدی توش نیست خودتون تحلیلش کنین

 

       

 

 

برا مثال این یک الگو از فایل xml  هست که فیلد کلید اصلی مربوط به رکورد های اضافه شده با دیتابیس و همچنین رکورد های اپدیت شده رو ذخیره میکنه توی خودش

 

امیدوارم که مفید بوده باشه

موفق باشید

امتیاز این post

یک پاسخ

  1. سلام من با یک خطا مواجع شدم چکار کنم ؟

    An unhandled exception of type ‘System.Xml.XmlException’ occurred in System.Xml.dll

    Additional information: Name cannot begin with the ‘”‘ character, hexadecimal value 0x22. Line 1, position 3.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

لطفا ابتدا به حساب کاربری خود وارد شوید