vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Controls · ListView & TreeView   |   VB-Versionen: VB.NET21.03.05
XML2TreeView / TreeView2XML - Klasse (VB.NET)

Mit dieser Klasse lässt sich sehr einfach eine XML-Datei in einem TreeView-Control anzeigen bzw. der Inhalt eines TreeView-Controls als XML-Datei speichern.

Autor:   WaldiMaywoodBewertung:  Views:  23.970 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Mit diesem VB.NET Klassenmodul lässt sich sehr einfach eine XML-Datei in ein TreeView-Control laden bzw. der Inhalt eines TreeView-Controls als XML-Datei speichern.

Lange Rede kurz Sinn, los geht's...

Beispiel für eine XML-Datei (nodes.xml):

<Nodes>
  <Programmiersprachen>
    <Scriptsprachen>
      <PHP />
      <JSP />
      <JavaScript />
    </Scriptsprachen>
    <OOP>
      <VB.NET />
      <CSharp.NET />
      <JAVA />
    </OOP>
  </Programmiersprachen>
  <wwwSeiten>
    <vbarchiv.net />
    <google.de />
  </wwwSeiten>
</Nodes>

Der Inhalt der XML-Datei soll jetzt in einem TreeView-Control angezeigt werden. Hierzu bedienen wir uns der Systems.XML-Klasse, mit der sich eine XML-Datei sehr einfach auslesen lässt. Gleichzeitig möchten wir aber auch, dass der Inhalt des TreeView-Controls wieder als XML-Datei abgespeichert werden kann. Auch hierfür verwenden wir wieder die Systems.XML-Klasse.

Fügen Sie Ihrem Projekt ein neues Klassenmodul mit nachfolgendem Code hinzu:

Option Strict On
Option Explicit On
 
Imports System.Xml
 
Public Class XmlTreeView
  ' XML-Datei auslesen und die entsprechenden 
  ' Nodes-Objekte im TreeView-Control erstellen
  Public Shared Sub LoadFromXml(ByVal FileName As String, ByVal TheTreeView As TreeView)
    Dim xDoc As New XmlDocument
    xDoc.Load(FileName)
    FillTreeView(TheTreeView.Nodes, xDoc.DocumentElement)
  End Sub
 
  Private Shared Sub FillTreeView(ByVal CurrentNodes As TreeNodeCollection, _
    ByVal xNode As XmlNode)
    For Each xChild As XmlNode In xNode.ChildNodes
      FillTreeView(CurrentNodes.Add(xChild.Name).Nodes, xChild)
    Next
  End Sub
 
  ' TreeView-Inhalt (Nodes-Objekte) als XML-Datei speichern
  Public Shared Sub SaveToXml(ByVal FileName As String, ByVal TheTreeView As TreeView)
    Dim xDoc As New XmlDocument
    xDoc.LoadXml("<Nodes></Nodes>")
    SaveNodes(xDoc.DocumentElement, TheTreeView.Nodes)
    xDoc.Save(FileName)
  End Sub
 
  Private Shared Sub SaveNodes(ByVal xNode As XmlNode, ByVal CurrentNodes As TreeNodeCollection)
    For Each tn As TreeNode In CurrentNodes
      Debug.WriteLine(tn.Text)
      SaveNodes(xNode.AppendChild(xNode.OwnerDocument.CreateElement(tn.Text)), tn.Nodes)
    Next
  End Sub
End Class

Hinweis:Ggf. muss zusätzlich noch ein Verweis auf das System.Xml.dll Assembly gesetzt werden.

Beispiel für den Aufruf der XMLTreeView-Klasse:

' XML-Datei im TreeView anzeigen
Me.TreeView1.Nodes.Clear()
XmlTreeView.LoadFromXml("Nodes.xml", Me.TreeView1)
' TreeView-Inhalt als XML-Datei speichern
XmlTreeView.SaveToXml("Nodes2.xml", Me.TreeView1)



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.