آموزش خواندن فایل های XML با کلاس XmlNodes در C#

از کلاس XMLDocuments برای خواندن فایل XML استفاده کردیم. یک کلاس جدید را در مثال درس قبل با نام کلاس XmlNode معرفی کردیم که برای تجزیه و خواندن فایل های XML بسبار ضروری است. به طور کلی، فایل XML به یک XmlNode که المنت اصلی یا root فایل است، تجزیه شده و سپس به وسیله آن می توانید با استفاده از خاصیت childNodes به عناصر فرزند المنت اصلی دسترسی داشته باشید. همچنین، کلاس XmlNode امکان دسترسی به اطلاعات بسیار دیگری از جمله نام تگ ها یا tag name، خواص یا attributes، متن درون تگ ها یا inner text وجود ساختار XML را نیز به ما می دهد.
در این درس قصد داریم تا توضیحی مختصر درباره برخی از جنبه های جالب کلاس XmlNode ارائه دادیم، زیرا داشتن اطلاعات درباره XmlNode به عنوان یکی از جنبه های کلیدی در هنگام خواندن فایل های XML توسط کلاس XMLDocument، بسیار مهم است.
در مثال های این درس، از المنت DocumentElement بسیار استفاده خواهیم کرد و از آنجایی که این عنصر از نوع XMLElement بوده و خود XMLElement از کلاس XmlNode به ارث رفته است، درواقع این نوع دوستی تقریبا یکسان هستند.
خاصیت Name Property به سادگی نام عنصر یا node را اعلام می کند. برای مثال، خروجی کد زیر مقدار “user” خواهد بود :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<user name="\"John" doe\"="">A user node</user>");
Console.WriteLine(xmlDoc.DocumentElement.Name);
Console.ReadKey();

خاصیت InnerText Property هم متن بین تگ باز و بسته هر tag را همانند کد زیر استخراج می کند :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<test>InnerText is here</test>");
Console.WriteLine(xmlDoc.DocumentElement.InnerText);
Console.ReadKey(); 

خاصیت OuterXml Property نیز همانند InnerText عمل می کند، با این تفاوت که کدهای XML را علاوه بر متن آن ها نیز نشان می دهد. کد زیر می تواند تفاوت دو خاصیت را نشان دهد :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<users><user>InnerText/InnerXml is here</user></users>");
Console.WriteLine("InnerXml: " + xmlDoc.DocumentElement.InnerXml);
Console.WriteLine("OuterXml: " + xmlDoc.DocumentElement.OuterXml);
Console.ReadKey();

همچنین در کد مثال زیر، با خواص یا attributes تگ ها نیز کار کرده ایم :

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml("<user name="\"John" doe\"="" age="\"42\""></user>");
if(xmlDoc.DocumentElement.Attributes["name"] != null)
    Console.WriteLine(xmlDoc.DocumentElement.Attributes["name"].Value);
if(xmlDoc.DocumentElement.Attributes["age"] != null)
    Console.WriteLine(xmlDoc.DocumentElement.Attributes["age"].Value);
Console.ReadKey();

شاید این مطالب را هم دوست داشته باشید

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

نشانی ایمیل شما منتشر نخواهد شد.