none
LER XML em textbox indexado ao combobox RRS feed

  • Pergunta

  • bom, 

    estou usando a combobox e lendo um arquivo xml

    na combobox fica os nomes

    quando altero um nome

    quero tambem que nas textbox altere os valores respectivos do nome

    no exemplo sera o telefone

    Imports System.Xml

     

    Public Class Form1

        Dim nome As String

        Dim telefone As String

        Dim doc As New XmlDocument

     

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

            carregaxml()

     

        End Sub

        Sub carregaxml()

            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

     

                nome = element.SelectSingleNode("nome").InnerText

                ComboBox1.Items.Add(nome)

     

                telefone = doc.SelectNodes("Agenda/contato").Item(ComboBox1.SelectedIndex).SelectSingleNode("telefone").InnerText

    texbox1.text = telegone

            Next

            ComboBox1.SelectedIndex = 0

        End Sub



    porem ele me da o erro na linha em negrito

    sexta-feira, 24 de setembro de 2010 00:24

Respostas

  • 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>


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Bruno Gaiola sexta-feira, 24 de setembro de 2010 00:35
    sexta-feira, 24 de setembro de 2010 00:27
  • Essa linha:

    texbox1.text = doc.SelectNodes("Agenda/contato").Item(ComboBox1.SelectedIndex).SelectSingleNode("telefone").InnerText

    É no evento do ComboBox1_SelectedIndexChanged, por isso não está danto certo


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Bruno Gaiola sexta-feira, 24 de setembro de 2010 00:35
    sexta-feira, 24 de setembro de 2010 00:33

Todas as Respostas

  • 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>


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Bruno Gaiola sexta-feira, 24 de setembro de 2010 00:35
    sexta-feira, 24 de setembro de 2010 00:27
  • esta da forma que postei

    esta dando esse erro

    Referência de objeto não definida para uma instância de um objeto.

     

    e o xml esta assim tambem

     

    sexta-feira, 24 de setembro de 2010 00:31
  • Essa linha:

    texbox1.text = doc.SelectNodes("Agenda/contato").Item(ComboBox1.SelectedIndex).SelectSingleNode("telefone").InnerText

    É no evento do ComboBox1_SelectedIndexChanged, por isso não está danto certo


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    • Marcado como Resposta Bruno Gaiola sexta-feira, 24 de setembro de 2010 00:35
    sexta-feira, 24 de setembro de 2010 00:33
  • perfeito, muito obrigado.

     

    sexta-feira, 24 de setembro de 2010 00:35