إزاي تقرا ملف إكس إم إل باستخدام سي شارب

البوست على تمبلر

أول مرّة أكتب على تيمبلر , هكتب عن البرمجة .. عجب :D

كُنت عملت أبليكيشن للقُرآن على ويندوز فون وفي أكتر من حد سألني إزّاي عملته , فأنا هكتب عن الحاجات اللي إتسأل عنها , مش هدخُل في تفاصيل كتير عشان صعب بسبب ظروف الإمتحانات..

الأوّل ملف القُرآن كان عبارة عن فايل إكس إم إل جايبه من موقع إسمه تنزيل [لينك] لأنّي حسّيت إنّه موثوق لعدد البرامج اللي مستخدماه .. تاني حاجة إستخدمتها كانت لايبراري إسمها System.Xml.Linq موجودة مع الدوت نت , فلو بتستخدم سي شارب مع دوت نت يبقى هي أكيد موجودة سواء ويندوز فون , 8 أو ديسك توب ..

طريقة إستخدامها :

  • الأوّل بنعمل لود للدوكيومنت بتاعت الإكس إم إل ..
Document.Load(@"X:\Path\to\file.xml")
  • وبنحطّها في فاريابُل من نوع XDocument .. مثلًأ:
XDocument doc = XDocument.Load(@"C:\quran.xml");
  • بعد كدة بنعرّف فاريابل من نوع IEnumerable بنحُط فيه كُل النودز اللي هنستخدمها , فمثلًا أنا محتاج السور والنود اللي بيكون فيها السور إسمها sura هكتب:
IEnumerable<XElement> sowar = doc.Elements().Elements("sura");
  • مُمكن تكمّل بعد النود دي وتكويري نود تاني بإنّك تكول الميثود .Elements("nodeName") تاني أو تجيب أتريبيوت مُعينة عن طريق الميثود ".Attribute("attributeText"); وطبعًا تقدر تـ iterate على كُل النودز زي أي حاجة تانية ..

الكود في النهاية المفروض يبقى حاجة زي كدة :

XDocument doc = XDocument.Load(@"C:\quran.xml");
IEnumerable<XElement> sowar = doc.Elements().Elements("sura");
String s = "السور الموجودة في القُرآن هي :\n";
foreach (var sura in sowar)
{
    s += (String)sura.Attribute("name") + "\n";
}

وكأي مُهاجر غير شرعي لتمبلر معتقدش إنّي هتابع أو هكمّل كتير .. فلو مردّتش على حد محدّش يزعل ..