5 fifth lesson -xml

19
Advanced C# Course 5- XML manipulation

Transcript of 5 fifth lesson -xml

Page 1: 5 fifth lesson -xml

Advanced C# Course

5- XML manipulation

Page 2: 5 fifth lesson -xml

04/13/2023 11:49 PM 2

Outlines . مقدمة هي ؟ XMLماXML Vs HTML ال ملف XMLبنية لملف األساسية XMLالمكونات ملف كتابة XMLقواعد معالجةXML . أمثلة

Page 3: 5 fifth lesson -xml

04/13/2023 11:49 PM 3

مقدمة طريقة لتخزين تقدم وبنيوية بسيطة تخزين

المعطيات في وتبادل استخدامها أجل البيئة من الموزعة

في 7ستخدم الويب ت Web Servicesخدمات باستخدام البيانات قواعد مع : أيضا ADO.NETتستخدم التلقائي Documentationالتوثيق( التكوين للمشروع ( Configurationإلعدادات املفات

Page 4: 5 fifth lesson -xml

04/13/2023 11:49 PM 4

هي ؟ XMLما( هيئة أو طريقة عن عبارة لتخزين( Formatهي

بسيطة البيانات نصية هيئة سر على أن وسنرىفي XMLقوة بنائها يكمن وهرمية بساطتها

بأنها : البيانات تخزين وسائل من غيرها عن تتميز و تشغيل نظام أي على (تعمل تشغيل ) نظام أي عن . مستقلة . اإلنترنت شبكة على النقل في سهولة و سرعة. اإلنترنت متصفحات تفهمها . الشجرية بنيتها

Page 5: 5 fifth lesson -xml

04/13/2023 11:49 PM 5

XML Vs HTML يعرف .HTMLمعظمناHTML فقط المعطيات تنسيق المعطيات وليس تصف تمثله ما

<h1> Learn C#</h1><h2> Learn JAVA </h2>

على يدل العالمات في شيء أي يوجد ال لكن كتاب تمثل المعطيات هذه أن لنفرض! كذلك أنها

الTags في ثابتة . HTMLالموجودة<auther> mohammad </auther><title> how to program</title>

العالماتTags تصف المعلومات هنا ذلك . ماهية يعني إظهارها كيفية مجرد وليسضمن البحث : مثال السهل من كتب XMLأنه مجموعة ضمن المؤلفين لعرض

Page 6: 5 fifth lesson -xml

04/13/2023 11:49 PM 6

ال ملف XMLبنية بلغة شبيهة الخارجي الشكل مبدأ HTMLفي تعتمد فهي

البيانات . tagsالوسوم لتوصيفكلمة تخزين أردنا نكتب Nizarفلو اسم أنها على

<name> Nizar </name>

” تخزينها المراد البيانات سنخزن الطريقة و “ Nizarبهذه“ : أيضا لها وصف بتخزين ” . nameقمنا

الـ وضع XMLتمتاز يمكن أنه أي الشجرية tagببنيتهاشجري tagضمن بشكل أخرى

Page 7: 5 fifth lesson -xml

04/13/2023 11:49 PM 7

ال ملف XMLبنية<Student>

<name><FirstName> mohamad </FirstName><LastName> Nizar </LastName>

</name><year> 23 </year>

</Student>

Student

yearname

FirstName LastName

Page 8: 5 fifth lesson -xml

04/13/2023 11:49 PM 8

لملف األساسية XMLالمكونات•Elements : و البيانات لتخزين األساسي العنصر يمثل

بـ المحاط المكون .tagsهو<name> mohammad</name>

•Attributes : بالـ خاصة صفات هي توضع elementوالقيمة tagضمن تحاط أن يجب و قيمة و اسم لها ،

الشكل في كما ، مزدوجة أو مفردة اقتباس بإشاراتالتالي :

<Student id=“1” >

Page 9: 5 fifth lesson -xml

04/13/2023 11:49 PM 9

لملف األساسية XMLالمكونات•Declaration : ليصف الملف بداية في يوضع مخصص وسم هو و

التالي : الشكل له ، عنه خاصة معلومات<?xml version="1.0" encoding="utf-8" standalone="yes"?>

حيث :version : الـ إصدارة على المتبعة . XMLلداللةEncoding . : الملف كتابة في المستخدم الترميز نوع على لداللةStandalone : مستندات أي يحتاج ال و ذاته بحد قائم المستند أن على لداللة

أخرى Comments :الـ ملف يحوي أن تحاط XMLممكن أن يجب و Vأيضا تعليقات

--<Comment >!-- بـ

Page 10: 5 fifth lesson -xml

04/13/2023 11:49 PM 10

ملف كتابة XMLقواعد لكلtag بدايةtag< إلغالقه الـ< x> … </xأخرى كان حال في لكن ،tag

الشكل > ييأخذ أن يمكن بيانات أي يحوي ال و فقط/< . nameفارغ للـ يمكن نكتب : tagsال كأن تتداخل أن

<FirstName><LastName>

</FirstName></LastName>

الـ ملف عنصر XMLيحتوي الـ Rootعلى كل أن يجب أنه أي ، فقط واحدtags ضمن النهاية في موجودة تكون أن الـ tagيجب هي .Rootواحدة

. األحرف لحالة حساسة.” “ إقتباس عالمتي بين توضع الصفات قيم في العادية المتحوالت على تسري التي الشروط العناصر أسماء على تسري

الرمز ”_“ إال رموز ال و فراغات تحوي أال و برقم تبدأ أال يجب ، برمجة لغة أي

خطأ

Page 11: 5 fifth lesson -xml

04/13/2023 11:49 PM 11

XMLمعالجة مستندات بتفسير يقوم أن متصفح ألي .XMLيمكن مستندات مع للتعامل شائعتان طريقتان عند XMLيوجد

:مفسراستخدام DOM. : للذاكرة تحميله ويتم المستند كامل المفسر يقرأ

الصنف طريق عن System.Xml.XmlDocumentتتم , : بعض الملف حجم مع : طردا متناسب الذاكرة حجم سيئاتها من

الحجم . الكبيرة المستندات تفسير تستطيع ال المفسرات. واحدة لحظة في الذاكرة في كاملة للبينة نحتاج ال قد

, تلو : عنصرا المستند قراءة فقط وللقراءة أمامية تفسير إليةاألخر .

: الصنفين خالل من النموذج هذا مع العمل يمكنSystem.Xml.XmlTextReader وSystem.Xml.XmlTextWrite

Page 12: 5 fifth lesson -xml

04/13/2023 11:49 PM 12

XmlTextReaderالصنف : وصوال يؤمن قارئ عن عبارة Vهو فقط سريعا لألمام

xmlلمعطيات مستند يقرأxml األخر تلو Vعن وذلك عنصرا Vعوضا

بأكمله المستند في تحميل .DOMكما كائن خصائص خصائص XmlTextReaderتعكس

الحالية العقدة يمكن إلى ال بالرجوع إال قراءتها بعد عقدة إلى العودة

المستند بداية بالتالي الذاكرة في واحدة عقدة تخزين إلى نحتاج

الذاكرة . استهالك تخفيف

Page 13: 5 fifth lesson -xml

04/13/2023 11:49 PM 13

XmlTextReaderالصنف <?xml version="1.0"?> <BOOKLIST> <ITEM isbn="12323" topic="C#"> <CODE>16-041</CODE> <CATEGORY>HTML</CATEGORY> <RELEASE_DATE>1998-03-07</RELEASE_DATE> <TITLE>Instant HTML</TITLE> <SALES>127853</SALES> </ITEM> <ITEM isbn="532341" tpoic="JAVA"> <CODE>16-048</CODE> <CATEGORY>Scripting</CATEGORY> <RELEASE_DATE>1998-04-21</RELEASE_DATE> <TITLE>Instant JavaScript</TITLE> <SALES>375298</SALES> </ITEM> <ITEM isbn="232413" topic="Python"> <CODE>16-105</CODE> <CATEGORY>ASP</CATEGORY> <RELEASE_DATE>1998-05-10</RELEASE_DATE> <TITLE>Instant Active Server Pages</TITLE> <SALES>297311</SALES> </ITEM> </BOOKLIST>

Page 14: 5 fifth lesson -xml

04/13/2023 11:49 PM 14

XmlTextReaderالصنف using System.Xml;static void Main(string[] args){ XmlTextReader xtr = new XmlTextReader(@"D:\booklist.xml");

//Read the Next Node from Stream and Retrurn bool if the Stream is ended

while (xtr.Read()) // if The Current Node is Element if (xtr.NodeType == XmlNodeType.Element)

Console.WriteLine("Element: " + xtr.Name);}

Page 15: 5 fifth lesson -xml

04/13/2023 11:49 PM 15

XmlTextReaderالصنف

Page 16: 5 fifth lesson -xml

04/13/2023 11:49 PM 16

الصنف .DOM نموذج XmlDocumentيحقق مستند مع بالتعامل الصنف هذا (.XMLيسمح , تعديل ) , حذف إضافة: مثال

<?xml version="1.0"?><books> <book> <author>Carson</author> <price format="dollar">31.95</price> <pubdate>05/01/2001</pubdate> </book> <pubinfo> <publisher>MSPress</publisher> <state>WA</state> </pubinfo>

</books>

XmlDocumentالصنف

Page 17: 5 fifth lesson -xml

04/13/2023 11:49 PM 17

XmlDocumentالصنف

Page 18: 5 fifth lesson -xml

04/13/2023 11:49 PM 18

مستند( Serializeس|لسلة) في :XMLكائن الصنف لسلسة System.Xml.Serialization.XmlSerializerيستخدم

مستند في .XMLكائن الكائنات سلسلة عملية في نتحكم بأن : أيضا لنا االفتراضية يمكن الحالة في

ال كافة أوسمة >DataMemberيضع شكل < tag> </tagعلى ( ضمن متحول خاصية بسلسلة نسمح ال أن الصفة ( Classيمكن طريق عن

[XmlIgnore]

int id; [XmlAttribute()] public int ID { get { return id; } set { id = value;} }

Page 19: 5 fifth lesson -xml

04/13/2023 11:49 PM 19