Rubrik: Dateisystem · XML | VB-Versionen: VB.NET | 08.07.08 |
XML mit XPath und VB.Net Anlegen oder Laden einer XML Datei, Navigieren an einen bestimmten Knoten in der Datei, sowie Erstellen eines neuen Knotens und Einfügen an die passende Stelle. | ||
Autor: Sebastian Lähns | Bewertung: | Views: 28.863 |
ohne Homepage | System: Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Für Viele ist XML immernoch ein Rätsel. Hier ein kleines Tutorial, das folgende Themen kurz anreißt:
- Anlegen oder Laden einer XML-Datei
- Navigieren an einen bestimmten Knoten in der Datei
- Erstellen eines neuen Knotens und Einfügen an die passende Stelle
Imports System.Xml Imports System.Xml.XPath ...
Dim i, j As Integer ' Hilfsvariablen Dim tmp As String ' Hilfsvariablen Dim xml As XmlDocument ' Unser Document Container xml = New XmlDocument ' Wir könnten jetzt eine xml Datei laden ' xml.Load("D:\Projekte\XML\AddDocumentsRequest.xml") ' oder stattdessen eine neue anlegen: xml.LoadXml("<?xml version=""1.0""?>" & _ "<Dokumentengruppe>" & _ "<Dokument>" & _ "<Pfad>" & _ "</Pfad>" & _ "</Dokument>" & _ "</Dokumentengruppe>") ' XPath ist eine hilfreicher Syntax, um in XML-Dokumenten ' zu navigieren und äußerst mächtig Dim xpath As String ' Jeder Knoten der Irgendwo im Dokument vorhanden ist ' und "Pfad heisst" ' In diesem Beispiel liegt nur ein solcher Knoten vor xpath = "//Pfad" ' Dokumentgruppe,Dokument,Datei,Pfad Dim xmln As XmlNode ' Container für unseren aktiven Knoten ' Für den Fall das wir mehrere Knoten haben auf die unser ' XPath zutrifft j = xml.SelectNodes(xpath).Count If j > 0 Then For i = 0 To j - 1 Step 1 xmln = xml.SelectNodes(xpath).Item(0) ' tmp = xmln.InnerText Dim newnode As XmlNode ' noch ein Knoten newnode = xml.CreateElement("test1") newnode.InnerText = "123" ' Inhalt für den neuen Knoten Dim att As XmlAttribute ' Container für Knoten Attribute att = xml.CreateAttribute("Eigenschaft") ' Name des Attributs att.Value = "test" 'Wert des Attributs newnode.Attributes.Append(att) ' Zuweisen des Attributs ' ParentNode geht eine Ebene über unseren XPath Knoten und ' AppendChild fügt den neuen Knoten ein xmln.ParentNode.AppendChild(newnode) ' Jetzt erst wird die Datei gespeichert xml.Save("D:\Projekte\XML\test.xml") Next i Else tmp = "Kein Knoten vorhanden" End If