تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
معلومة ::: TreeView
#14
الآن لنري أمر ذوى جدوي وعملى أكثر


هل فكرت فى عرض أى ملف 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



}}}
تم الشكر بواسطة: asemshahen5 , asemshahen5


الردود في هذا الموضوع
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:10 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:11 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:12 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:12 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:12 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:12 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:13 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:13 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:13 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:14 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:14 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:15 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:15 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:15 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:15 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:16 PM
معلومة ::: TreeView - بواسطة Raggi Tech - 06-10-12, 08:16 PM


التنقل السريع :


يقوم بقرائة الموضوع: