منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : معلومة ::: Write To Xml File
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كاتب الموضوع : BADRMEDIA


شرحنا فى درس سابق كيفية القراءة من ملف Xml

لكن كيف نكتب ملف Xml ونتعامل معه بالكتابة فيه

سنستخدم العنصر XmlWriter

أنشأ مشروع - ضع زر أمر Button

أضف هذا الكود له



كود :
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create("C:\BADRMEDIA.xml")
writer.WriteStartElement("AddressList")
writer.WriteEndElement()
writer.Close()

عرفنا متغير من نوع العنصر XmlWriter وأنشأنا ملف BADRMEDIA.xml

وضعنا عنوان للعنصر - AddressList






في الكود السابق سيتكون لدينا ملف على القرص المحلي C باسم BADRMEDIA.xml

سيكون محتواه كالتالي



<?xml version="1.0" encoding="utf-8"?><AddressList />
فى المثال السابق أنشأنا ملف Xml وفقط مجرد اسم للملف واسم للعنصر

لكن خصائص الملف ماذا لو أردت أن تنشأها

مثلاً خاصية Encoding

فيتم ذلكمع انشاء الملف


لنري المثال الأتى من خلال الكود



كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim st As New System.Xml.XmlWriterSettings
st.Encoding = System.Text.Encoding.UTF8
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create("C:\BADRMEDIA.xml", st)
writer.WriteStartElement("AddressList")
writer.WriteEndElement()
writer.Close()

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub



تعرفنا علي كيفية ارسال الخصائص مع تكوين الملف


لنري شئ هام الآن


نفذ هذا الكود تحت زر الأمر



كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim st As New System.Xml.XmlWriterSettings
st.Encoding = System.Text.Encoding.UTF8
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create("C:\BADRMEDIA.xml", st)
writer.WriteStartElement("AddressList")
writer.WriteStartElement("ZIP_CODE")
writer.WriteEndElement()
writer.Close()

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub

أضفنا عنصر جديد اسمه ZIP_CODE

أذهب إلى مكان انشاء الملف وافتح الملف واطلع على محتواه ماذا تجد ؟؟؟؟


تجد محتوي الملف فى هذا الشكل



كود :
[color=#000080]<?xml version=[COLOR=#0000ff]"1.0"[/color] encoding=[color=#0000ff]"utf-8"[/color]?>[/COLOR][color=#000080]<AddressList>[/color][color=#000080]<ZIP_CODE />[/color][color=#000080]</AddressList>[/color]

ماذا لو أنشأنا عناصر أخري سيكون الملف صعب القراءة من الداخل لك

لذا جاء دور الخاصية المسئولة عن تنسيق الملف وللقيام بذلك نقوم بالآتي


أول شئ لابد أن نفعل الخاصية Indent ونجعلها تساوي True

ثم نتجه للخاصية IndentChars ونحدد نوع التنسيق المراد

وإليك هذا الكود




كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim st As New System.Xml.XmlWriterSettings
st.Encoding = System.Text.Encoding.UTF8
st.Indent = True
st.IndentChars = ControlChars.Tab
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create("C:\BADRMEDIA.xml", st)
writer.WriteStartElement("AddressList")
writer.WriteStartElement("ZIP_CODE")
writer.WriteEndElement()
writer.Close()

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub


اذهب الان واطع على ملف Xml من الداخل وتعرف على الفرق

تكلمنا عن انشاء الملف وعن خصائصه وتكوين العناصر

لكن حتى الان لم نسند قيم للعناصر

الأمر سهل جدا

كل ما فى الأمر أنه بعد انشاء العنصر - ترسل له قيمة فقط




كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try

Dim st As New System.Xml.XmlWriterSettings
st.Encoding = System.Text.Encoding.UTF8
st.Indent = True
st.IndentChars = ControlChars.Tab
Dim writer As System.Xml.XmlWriter = System.Xml.XmlWriter.Create("C:\BADRMEDIA.xml", st)
writer.WriteStartElement("AddressList")
writer.WriteStartElement("ZIP_CODE")
writer.WriteValue("123-5555")
writer.WriteEndElement()
writer.Close()

Catch ex As Exception
MsgBox("" & ex.Message & "", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRtlReading + MsgBoxStyle.MsgBoxRight, "BADRMEDIA SoftWare ")
End Try

End Sub