| 

.NET C# Java Javascript Exception

1
Hallo wie kann ich XML Werte Einlesen in einer Combobox!

Code;
-----------------------------

Dim dsData = New DataSet
dsData.ReadXml(Application.StartupPath & ".\serverlist.xml")
cbologin.DataSource = dsData.Tables(0)
cbologin.DisplayMember = "server"

XML:
___________________________
<?xml version="1.0" encoding="utf-8"?>
<conf>
<server>server1</server>
<server>server2</server>
<server>server3</server>
</conf>

oder geht das auch anders!

Gruss TM
News:
15.04.2020
tsmeier 51 1 3
3 Antworten
0
Folgende Idee Combobox XML auslesen....

Server wird schon in der Combo Box eingelesen aber wie mache ich das mit den Benutzer txtuser txtpassword übergabe in die Textboxen!!!!

Hat einer eine idee.... Gruss TM

XML
<?xml version="1.0" encoding="utf-8"?>
<conf>
<server>server1</server>
<Benutzer>sa</Benutzer>
<Passwort>Pass 1</Passwort>
<server>server2</server>
<Benutzer>sa</Benutzer>
<Passwort>Pass 2</Passwort>
<server>server3</server>
<Benutzer>sa</Benutzer>
<Passwort>Pass 3</Passwort>
</conf>

Code:
Dim doc As New System.Xml.XmlDocument()
Dim dom As New Xml.XmlDocument
dom.Load(Application.StartupPath & ".\serverlist.xml")
cbologin.Items.Clear()
For Each node As Xml.XmlNode In dom.SelectNodes("//conf/server")
If cbologin.Items.Add(node.InnerText) Then
If doc.GetElementsByTagName("Benutzer")(0) IsNot Nothing Then
txtuser.Text = doc.GetElementsByTagName("Benutzer")(0).InnerText
If doc.GetElementsByTagName("Passwort")(0) IsNot Nothing Then
txtpassword.Text = doc.GetElementsByTagName("Passwort")(0).InnerText
End If
End If
End If
Next
19.04.2020
tsmeier 51 1 3
0
Warum legst du nicht einfach eine Klasse an, welche als Properties deine XML-Attribute hat. Dann kannst du eine Collection aus Objekten dieser Klasse erzeugen, indem du das XML deserialisierst (Stichworte "Serializble" Attribut und XmlSerializer) und die Collection an die DataSource der Combobox bindest. Das könnte dann in etwa so aussehen:

Dim meineListe As List(Of KeyValuePair(Of String, ServerData))

meineListe = LeseServerDaten()

cboServer.DataSource = Nothing
cboServer.DataSource = list
cboServer.DisplayMember = "Value"
cboServer.ValueMember = "Key"

ServerData ist eine Klasse mit den Properties Server, UserID und Password. In LeseServerdaten() liest du deine XML-Datei ein und erzeugst eine Liste von KeyValuePairs. Die Textboxen kannst du dann im SelectedIndexChanged-Event der Combobox füllen:

Private Sub cboServer_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboServer.SelectedIndexChanged

If (cboServer.SelectedIndex = -1) Then
Return
End If

Dim selectedItem = DirectCast(cboServer.SelectedItem, KeyValuePair(Of String, ServerData))
txtUser.Text = selectedItem.User
txtPassword.Text = selectedItem.Password

End Sub
07.05.2020
luedi 2,2k 1 9
0
So habe ich es derzeit gelöst:

cbologin Combobox
txtuser textbox
txtpassword textbox

CODE:
---------------------
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'############# XML Read for Select Combobox ##############

'################### Wert vorauswählen cbo Box ##############

Dim xml_doc As New XmlDocument
xml_doc.Load("serverlist.xml")
Dim SearchList As XmlNodeList = xml_doc.SelectNodes("employee/user/srv")

For Each Search As XmlNode In SearchList
cbologin.Items.Add(Search.InnerText)
Next

cbologin.SelectedIndex = 0
End Sub
Private Sub cbologin_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbologin.SelectedIndexChanged
'Auslesen der Benutzer und password
Dim xmlFile As XDocument = New XDocument()
xmlFile = XDocument.Load("serverlist.xml")
Dim auswahlName As String = TryCast(cbologin.SelectedItem, String)
Dim user = (From xNode In xmlFile.Root.Descendants("user") Where xNode.Element("srv").Value = auswahlName Select xNode.Element("benutzer").Value).FirstOrDefault()
Dim pass = (From xNode In xmlFile.Root.Descendants("user") Where xNode.Element("srv").Value = auswahlName Select xNode.Element("pwd").Value).FirstOrDefault()
' Textboxen
txtuser.Text = user
txtpassword.Text = pass

End Sub

---------------------

Gruss TM
28.08.2020
tsmeier 51 1 3

Stelle deine --Frage jetzt!