إزاي تقرا ملف إكس إم إل باستخدام سي شارب
البوست على تمبلر
أول مرّة أكتب على تيمبلر , هكتب عن البرمجة .. عجب :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";
}
وكأي مُهاجر غير شرعي لتمبلر معتقدش إنّي هتابع أو هكمّل كتير .. فلو مردّتش على حد محدّش يزعل ..