06-10-12, 08:15 PM
الآن لنري أمر ذوى جدوي وعملى أكثر
هل فكرت فى عرض أى ملف XML فى شجرة العرض TreeView
تعال نقوم بذلك
أولأ لابد أن نصل لملف Xml
ولنقوم بذلك يمكن أن ندرج أداة OpenFileDialog أو أن ننشأها بالكود
الاجرائية MakeTree
حتى نستخدمها لابد أن نعلن فى قسم الكود العام عن فضاء الاسم الخاص بالتعامل مع ملفات XML
إذا أردت تكوين ملف XML كمثال
قم بانشاء ملف نصي وضع فيه هذا الكود
وعند حفظ الملف ضع له اسم مع الملحقة .XML
هل فكرت فى عرض أى ملف XML فى شجرة العرض TreeView
تعال نقوم بذلك
أولأ لابد أن نصل لملف Xml
ولنقوم بذلك يمكن أن ندرج أداة OpenFileDialog أو أن ننشأها بالكود
كود :
' أنشأنا متغير اسميناه dlgOpen من نوع OpenFileDialog
Dim dlgOpen As New OpenFileDialog
' سنقوم بعمل فلتر له لنحدد نوع الملفات التى يطلع عليها هذا الكائن
dlgOpen.Filter = "(*.xml)|*.xml"
' فى حالة تحديد ملف من قبل المستخدم
If dlgOpen.ShowDialog = Windows.Forms.DialogResult.OK Then
' قمنا بتعريف متغير xmlDoc من نوع XmlDocument
Dim xmlDoc As New XmlDocument
' جعلناه يساوي الملف XML الذى اختاره المستخدم
xmlDoc.Load(dlgOpen.FileName)
' عرفنا متغير xmlRoot من نوع XmlElement وجعلناه يساوي xmlDoc.DocumentElement
' بحيث نصل للعناصر التى فى ملف XML
Dim xmlRoot As XmlElement = xmlDoc.DocumentElement
' عرفنا متغير trvRoot من نوع TreeNode
Dim trvRoot As New TreeNode
' قمنا فى هذا الاجراء بمسح أى عنصر موجود فى شجرة العرض TreeView
' فى حالة لو وجد فيها عناصر من ملف سابق
TreeView1.Nodes.Clear()
' ارسلنا المتغير xmlRoot و المتغير trvRoot كوسيطات للاجرائية MakeTree
' المسئولة عن تكوين العناصر فى شجرة العرض TreeView وسنتكلم عليها الآن
MakeTree(xmlRoot, trvRoot)
' قمنا باضافة العناصر لشركة العرض TreeView
TreeView1.Nodes.Add(trvRoot)
End Ifالاجرائية MakeTree
حتى نستخدمها لابد أن نعلن فى قسم الكود العام عن فضاء الاسم الخاص بالتعامل مع ملفات XML
كود :
Imports System.Xmlكود :
Private Sub MakeTree(ByVal xmlParent As System.Xml.XmlElement, ByRef trvParent As TreeNode)
If xmlParent.HasChildNodes Then
For I As Integer = 0 To xmlParent.ChildNodes.Count - 1
If xmlParent.ChildNodes(I).GetType.ToString().IndexOf("XmlElement") >= 0 Then
Dim xmlChild As XmlElement = xmlParent.ChildNodes(I)
Dim trvChild As New TreeNode
trvChild.Text = xmlChild.Name
If xmlChild.HasChildNodes Then
MakeTree(xmlChild, trvChild)
End If
trvParent.Nodes.Add(trvChild)
ElseIf xmlParent.ChildNodes(I).GetType.ToString().IndexOf("XmlText") >= 0 Then
Dim trvChild As New TreeNode
trvChild.Text = xmlParent.ChildNodes(I).InnerText
trvParent.Nodes.Add(trvChild)
End If
Next
End If
End Subإذا أردت تكوين ملف XML كمثال
قم بانشاء ملف نصي وضع فيه هذا الكود
كود :
<?xml version="1.0" encoding="shift_jis"?>
<ADDRESS_DATA>
<ZIP>010-3012</ZIP>
<ADDRESS>Egypt-Cairo</ADDRESS>
<NAME>BADRMEDIA</NAME>
</ADDRESS_DATA>وعند حفظ الملف ضع له اسم مع الملحقة .XML
