Hallo Community,
ich speicher Namen von Knoten einer TreeView in einer XML Datei um Sie nach Laden des Programs wieder herstellen zu können. Diese Einträge sind dynamisch erstellbar. Nur habe ich nun ein kleines Problem. Es dürfen keine Sonderzeichen im Namen enthalten sein ansonst erhalte ich folgenden Fehler:
XMLException wurde nicht behandelt
Das ' '-Zeichen, hexidezimaler Wert 0x20, kann nicht in einen Namen aufgenommen werden.
Gibt es eine möglichkeit dies zu umgehen? Da ich gerne in der TreeView Leerzeichen hätte.
Hier mal mein Code
Würde mich über Hilfe freuen.
ich speicher Namen von Knoten einer TreeView in einer XML Datei um Sie nach Laden des Programs wieder herstellen zu können. Diese Einträge sind dynamisch erstellbar. Nur habe ich nun ein kleines Problem. Es dürfen keine Sonderzeichen im Namen enthalten sein ansonst erhalte ich folgenden Fehler:
XMLException wurde nicht behandelt
Das ' '-Zeichen, hexidezimaler Wert 0x20, kann nicht in einen Namen aufgenommen werden.
Gibt es eine möglichkeit dies zu umgehen? Da ich gerne in der TreeView Leerzeichen hätte.
Hier mal mein Code
VB.NET-Quellcode
- Public Sub Save_Code()
- INI_WriteValueToFile("Einstellungen", "Zähler", frmMain.Zaehler, ".\Einstellungen.ini") 'Speichert den Wert der Variable Zähler in der Datei Einstellungen.ini. Dies wird unter dem Register Einstellungen, Variable Zähler abgelegt.
- 'Try
- XmlTreeView_Class.SaveToXml("Nodes.xml", frmMain.tvCodeSelect) 'Läd die Sub SaveToXML in der Klasse XMLTreeView , Übergabe Parameter sind "Nodes.xml", Me.tvCodeSelect. Hier werden die Items der TreeView abgespeichert
- XML_Verarbeitung.SaveCodeToXML() 'Läd im Module1 die SubRoutine SaveCodeToXML welche dazu dient den Code in einer Sepperaten XML abzuspeichern.
- 'Catch ex As Exception
- MsgBox("Codes können nicht in Umgebungen abgespeichert werden", MsgBoxStyle.Critical, "ERROR") 'Bei Irgendeinem Fehler gib diese MsgBox aus
- 'End Try
- End Sub
VB.NET-Quellcode
- ' 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
VB.NET-Quellcode
- Public Sub SaveCodeToXML()
- Dim xml As New Xml.XmlDocument()
- Dim xmlKD As Xml.XmlElement
- Dim xmlUnterKD1 As Xml.XmlElement
- Dim xmlUnterKD2 As Xml.XmlElement
- Dim xmlUnterKD3 As Xml.XmlElement
- Dim xmlText As Xml.XmlText
- xml.Load("Code.xml")
- xmlKD = xml.CreateElement(frmMain.tvCodeSelect.SelectedNode.Parent.Text)
- xmlUnterKD1 = xml.CreateElement(frmMain.tvCodeSelect.SelectedNode.Text)
- xmlUnterKD2 = xml.CreateElement("Beschreibung")
- xmlUnterKD3 = xml.CreateElement("Code")
- xmlText = xml.CreateTextNode(frmMain.txtBeschreibung.Text)
- xmlUnterKD2.AppendChild(xmlText)
- xmlText = xml.CreateTextNode(frmMain.rtbCode.Text)
- xmlUnterKD3.AppendChild(xmlText)
- xmlKD.AppendChild(xmlUnterKD1)
- xmlUnterKD1.AppendChild(xmlUnterKD2)
- xmlUnterKD1.AppendChild(xmlUnterKD3)
- xml.DocumentElement.AppendChild(xmlKD)
- xml.Save("Code.xml")
- End Sub
Würde mich über Hilfe freuen.