VB.NET - XML Daten lesen und in Textbox schreiben
Hallo,
ich stecke gerade an folgendem Problem fest.
Ich erstelle eine XML Datei wo ich Programmeinstellungen hinterlege. Derzeit werden nur Pfade bei mir hinterlegt die andere Skripts verwenden sollen.
Wenn ich die Daten nun beim Start der Form laden will komme ich immer auf einen Fehler, mir fällt leider auch keine Lösung ein, wie ich das bauen kann.
Im Grunde muss ich durch jede Node lesen und dann die richtige abgreifen und die Textbox füllen. Beim ersten Start, ohne das Pfade hinterlegt wurden, crashed er raus mit der Meldung, das InnerText = Nothing.
Ich muss ihm also irgendwie itteilen, das wenn xmlDoc.SelectSingleNode("/Settings/Pfad/ProsozAusgabe").InnerText = Nothing, dann überspringe. Ich denke, ich könnte das über mehrere IF Anweisungen regeln, aber da muss es doch auch eine elegantere Art und Weise geben. Mir fällt nur derzeit nichts ein.
Vielen Dank im Voraus
ich stecke gerade an folgendem Problem fest.
Ich erstelle eine XML Datei wo ich Programmeinstellungen hinterlege. Derzeit werden nur Pfade bei mir hinterlegt die andere Skripts verwenden sollen.
Wenn ich die Daten nun beim Start der Form laden will komme ich immer auf einen Fehler, mir fällt leider auch keine Lösung ein, wie ich das bauen kann.
' Wenn XML Datei existiert lade die Datei und fülle die Textboxen
If File.Exists(xmlPath) Then
xmlDoc.Load(xmlPath)
Dim node As XmlNode
txtBoxProsozAusgabe.Text = xmlDoc.SelectSingleNode("/Settings/Pfad/ProsozAusgabe").InnerText
txtBoxEVArchiv.Text = xmlDoc.SelectSingleNode("/Settings/Pfad/EVArchiv").InnerText
txtBoxEVAusgabeHH.Text = xmlDoc.SelectSingleNode("/Settings/Pfad/EVAusgabeHH").InnerText
Else ' XML-Datei existiert noch nicht, erstelle das Gerüst der Datei im Speicher
Dim XmlDeclaration As XmlDeclaration = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", Nothing)
xmlDoc.InsertBefore(XmlDeclaration, xmlDoc.DocumentElement)
Dim nodeRoot As XmlElement = xmlDoc.CreateElement("Settings")
Dim nodeProcess As XmlElement = xmlDoc.CreateElement("Pfad")
nodeRoot.AppendChild(nodeProcess)
xmlDoc.AppendChild(nodeRoot)
SaveXML()
End If
Im Grunde muss ich durch jede Node lesen und dann die richtige abgreifen und die Textbox füllen. Beim ersten Start, ohne das Pfade hinterlegt wurden, crashed er raus mit der Meldung, das InnerText = Nothing.
Ich muss ihm also irgendwie itteilen, das wenn xmlDoc.SelectSingleNode("/Settings/Pfad/ProsozAusgabe").InnerText = Nothing, dann überspringe. Ich denke, ich könnte das über mehrere IF Anweisungen regeln, aber da muss es doch auch eine elegantere Art und Weise geben. Mir fällt nur derzeit nichts ein.
Vielen Dank im Voraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 476354
Url: https://administrator.de/forum/vb-net-xml-daten-lesen-und-in-textbox-schreiben-476354.html
Ausgedruckt am: 26.04.2025 um 04:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo,
hab mich schon bei deiner INI Frage gewundert. Das nutzt doch keiner mehr, und hier der Aufwand.
Schau dir doch mal bitte das an.
https://docs.microsoft.com/de-de/dotnet/visual-basic/developing-apps/pro ...
glaub ich macht mehr Sinn.
hab mich schon bei deiner INI Frage gewundert. Das nutzt doch keiner mehr, und hier der Aufwand.
Schau dir doch mal bitte das an.
https://docs.microsoft.com/de-de/dotnet/visual-basic/developing-apps/pro ...
glaub ich macht mehr Sinn.

Wenn einem nichts einfällt, DOKU lesen
https://www.w3schools.com/xml/xpath_syntax.asp
https://www.w3schools.com/xml/xpath_syntax.asp
Zitat von @Pat.bat:
Gibt es noch eine gute Variante um Anwedungseinstellungen wie diese im Programmpfad abzulegen?
Gibt es noch eine gute Variante um Anwedungseinstellungen wie diese im Programmpfad abzulegen?
Ich würd jetzt nicht sagen das du gründlich gelesen hast. Man kann sagen ob Anwendungs oder User bezogen