Usuário com melhor resposta
Ler XML em combobox

Pergunta
-
Olá
vou exemplificar o que preciso fazer
tenho um arquivo em xml que contem os campos em seguintes campos em contato : nome, endereço telefone e rg
adiciono uma combobox no meu projeto e 3 textbox
quero que na combobox, fique armazenado todos os campos nome
e quando selecionar algum nome na combobox as informações deste nome (endereço, telefone e rg)
sejam preechidos nas textbox.
como consigo realizar este procedimento com um xml ?
obrigado
- Editado AndreAlvesLimaModerator quinta-feira, 23 de setembro de 2010 20:14 ajustando titulo
Respostas
-
Bruno,
Você pode usar o XMLDocument para ler o XML:
http://msdn.microsoft.com/en-us/library/system.xml.xmldocument%28VS.71%29.aspx
Pode também ler o XML para um DataSet:
http://msdn.microsoft.com/en-us/library/fx29c3yd%28VS.71%29.aspx
A partir dai você pode ligar o DataSource, DisplayMember e ValueMember do ComboBox e Bindar os TextBox no DataSet.
At.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 23 de setembro de 2010 19:21
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Não Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Não Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:34
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:34
Todas as Respostas
-
Bruno,
Você pode usar o XMLDocument para ler o XML:
http://msdn.microsoft.com/en-us/library/system.xml.xmldocument%28VS.71%29.aspx
Pode também ler o XML para um DataSet:
http://msdn.microsoft.com/en-us/library/fx29c3yd%28VS.71%29.aspx
A partir dai você pode ligar o DataSource, DisplayMember e ValueMember do ComboBox e Bindar os TextBox no DataSet.
At.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono)- Sugerido como Resposta AndreAlvesLimaModerator quinta-feira, 23 de setembro de 2010 19:21
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Não Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:16
- Não Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:34
- Marcado como Resposta Bruno Gaiola quinta-feira, 23 de setembro de 2010 20:34
-
Sim, até ai tudo bem
a minha duvida neste caso é com relação a fazer passar as informações para as textbox quando eu alterar o nome da combobox
Sub carregaxml()
Dim doc As New XmlDocument
Try
doc.Load("contatos.xml")
Catch ex As Exception
MsgBox("Erro ao ler arquivo XML.")
Exit Sub
End Try
Dim nodes As XmlNodeList = doc.SelectNodes("Agenda/contato")
For Each element As XmlElement In nodes
Dim nome As String = element.SelectSingleNode("nome").InnerText
ComboBox1.Items.Add(nome)
Next
ComboBox1.SelectedIndex = 0
End Subdesta forma eu escrevo no combo
agora que carregar as informaçoes do nome selecionado na combo
como posso fazer isso ?
-
Bruno,
Você pode acessar os nós pelo índice do combobox.
Então no SelectedIndexChanged do ComboBox você pega o item filho do doc pelo índice selecionado:
doc[ComboBox1.SelectedIndex].SelectSingleNode("atributo").InnertText
at.,
Rogério de Resende Ohashi | Ohashi.NET (.NET, Security, C#, WinForms, WCF, Workflow, Azure, Windows Phone, Mono) -
-
-
-
É porque você tem que dar o selectNodes novamente no doc para que ele carregue os elementos.
Tenta Assim:
doc.SelectNodes("Agenda/contato").Item(ComboBox1.SelectedIndex).SelectSingleNode("telefone").InnerText
Bruno Ferreira de Souza
Analista Desenvolvedor .NET
MCP - Windows Form- Editado Bruno Maestro sexta-feira, 24 de setembro de 2010 00:19
-
-
-
-
Bruno, se você colocou a variável doc como Global, o código abaixo vai funcionar.
doc.SelectNodes("Agenda/contato").Item(ComboBox1.SelectedIndex).SelectSingleNode("telefone").InnerText
com o XML nesse formato
<?xml version="1.0"?>
<Agenda>
<contato>
<telefone>123456789</telefone>
<nome>Bruno</nome>
<sobrenome>Maestro</sobrenome>
</contato>
</Agenda>Cria outro tópico, porque como já for resolvido esse na busca fica um pouco perdido.
Bruno Ferreira de Souza
Analista Desenvolvedor .NET
MCP - Windows Form