vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
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:     [ Jetzt bewerten ]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)

Dieser Tipp wurde bereits 23.970 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (1 Beitrag)

nach obenzurück


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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle 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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel