|
|
| |
|
|
| رقم العضوية : 354 |
| تاريخ التسجيل : Aug 2009 |
| الدولة : Jordan |
الجنس :  |
| عدد المشاركات : 1 [+] |
| آخر تواجد : 08-04-2009 [+] |
| عدد النقاط : 10 |
|
|
Asp.net + xml, درس مبسط
كُتب : [ 08-04-2009
- 07:01 PM ]
بسم الله الرحمن الرحيم
موضوع جديد و بداية مهمة لطريقة تعامل مع البيانات بشكل جديد و ضروري .. حقيقة من يقدر ضرورة "الملح للطعام" فقط من يقدر أهمية ال XML في بيئة الدوت نت .. سأتناول في هذا المقال المبسط جدا "الملح " كمقدمة لتطبيقات ترتكز على ال XML بشكل مباشر من حيث قراءة و كتابة البيانات من و إلى ملف XML ..
نبدأ الان في طريقة القراءة ..
كلنا نعرف انه من المهم ان نقوم بإضافة Namespace الخاص بال XML و هو
كود:
using System.Xml طبعا الان يمكنناالتعامل مع مكتبة ال XML و التي تتيح لنا مجموعة من الكلاسات التي تساعدنا على أداء الواظئف الحيوية بتلك اللغة ..
سأكتب أولا كود القراءة ومن ثم سأشرح ما كتبته ..لكن قبل الكود اسمحولي أن أدرج محتوى ملف XML قمت بكتابته من أجل استخدامه في تطبيقنا هذا ..
كود:
Mohd. Khalil
Hi..It is a test pageGood ..
mohd_kh_80@hotmail.com
Mohd. Abdulmajeed
Hi Mohammed ..::Good ..
albayed@hotmail.com
[/CODE]
هذا كان محتوى الملف الذي سنتعامل معه و طبعا يمكنك ادراج ملف XML مباشرة من ال VS.NET من خلال إضافة Add new item و ستظهر عدة خيارات نختار منها XML file
او من خلال النوت باد مباشرة و نحفظ الملف في مجلد التطبيق ..
الان هذا هو كود القراءة ..
كود:
كود:
private void Page_Load(object sender, System.EventArgs e)
{
1: XmlTextReader reader=new XmlTextReader(Request.MapPath("guestBook.xml"));
2: while(reader.Read()){
3: Label1.Text+= reader.Value + "";}
}
كما نرى في السطر الأول قمنا بتعريف ال reader و هو من نوع XmlTextReader و طبعا هذا الكلاس مشتق من ال Namespace الذي ذكرته بالأعلى .. و قمنا بإسناد مسار الملف له و طبعا ال Request.MapPath تعيد لنا المسار ال Virtual Path الذي نحن به و مثلا لو كان التطبيق على القرص C في مجلد wwwroot التابع للمجلد inetpub بداخل مجلد application فسيكون الناتج كما يلي :
الان ال Reader أصبح يحتوي على البيانات و يبقى أننا كيف نعرضها .. طبعا انا ذكرت طرق العرض باستخدام ال DataList و ال repeater و ال DataGrid و ال DataTable و لكن هنا
اكتفيت بأبسط الطرق و هي إسناد القيمة ل web control من نوع Label و اسميته Label1 ..
توضيح فقط لمبرمجين الفي بي ..
كود:
كود:
//C#
Label1.Text+="text"; == Label1.Text=Label1.Text + "text";
// VB.NET
Label1.Text=Label1.Text + "text" الان نأتي لدورالكتابة للملف .. سأبدا أولا بكتابة الكود ثم أشرح ما هو مكتوب .. try { 1: XmlTextWriter writer=new XmlTextWriter(Request.MapPath("guestBook.xml")); 2: writer.Formatting=Formatting.Indented; 3: writer.WriteStartDocument(); 4: writer.WriteStartElement("name",""); 5: writer.WriteString(strName.Text); 6: writer.WriteEndElement(); 7: writer.WriteStartDocument(); 8: writer.WriteStartElement("body",""); 9: writer.WriteString(strBody.Text); 10: writer.WriteEndElement(); 11: writer.WriteStartDocument(); 12: writer.WriteStartElement("email",""); 13: writer.WriteString(strEmail.Text); 14: writer.WriteEndElement(); 15: writer.WriteEndDocument(); 16: writer.Close(); } catch { Response.Write(ex.Messege); }
بداية قمت باستخدام try و catch خلال الكود و هي تقوم بتتبع الأخطاء و توقيف عملية التنفيذ للكود و إعادة الخطأ في اخر سطر من خلال عرض ال ex.Messege و ان شاء الله في موضوع لاحق سأتعرض لل try-catch-expiction و طرق استخدماها ..
عموما ما يهمنا الان هو الجزء الخاص بال XML ..
في السطر الأول عرفنا ال writer من نوع xmlTextWriter و أسندنا إليه مسار الملف الذي سنكتب إليه ثم في السطر الثاني حددنا طريقة التنسيق للبيانات في الملف ..في لسطر الثالث قمنا بفتح الملف و في الرابع قمنا بعمل Node جديدة و انشأنا عنصر للاسم name
من خلال طريقة ال writeStartDocument ثم في السطر الخامس قمنا بتحديد قيمة لعنصر الخاص بالاسم حسب القيم المستقبلة من ال strText.Text و هي أصلا عبارة عن حقل نصي أدرجناه في التطبيق يأخذ اسم strName و طبعا هناك للايميل و تعليق ..في السطر السادس أغلقنا العنصر من خلال writeEndElement
و هكذا حتى نسجل الايميل و التوقيع ثم نغلق الملف بالأسفل في السطر 15 .. في السطر 16 انهينا الكائن writer ..
هذا نكون انتهينا من هذا الدرس و ان سمح الوقت سنقوم بعمل تطبيق لسجل الزوار ان شاء الله قريبا لكن أود فعلا أن أركز خاصة لمبرمجي ال ASP ان الجانب النظري و الفهم الصحيح للكائنات و عينات الفضاء و كيفية التعامل مع بيئة الدوت نت هي من أهم العوامل
في التقدم في هذا العالم الرحب ..
اخوكم
دكتور/ كمال محمد محمد
دكتوراة فى علوم البرمجيات من جامعة حسين بن طلال بمعان بالاردن
مصرى اردنى الجنسية صاحب شركات برمجة واستضافة فى مصر والاردن والسعودية
دكتور/ كمال محمد محمد دكتوراة فى علوم البرمجيات من جامعة حسين بن طلال بالاردن صاحب مجموعة شركات opreator للبرمجيات واستضافة السيرفرات |
|