none
Arquivo XML RRS feed

  • Pergunta

  • Olá.

     

    Estou precisando ler um arquivo xml, porém não encontrei nenhum exemplo de como ler arquivos xml do tipo a seguir:

    <items>

      <item id="1" name="carro" preco="100" />

      <item id="2" name="moto" preco="50" />

      <item id="3" name="bicicleta" preco="10" />

    </items>

     

    Estou usando o evento KeyUp em um TextBox, e nele irei comparar a palavra escrita no textbox com o "name" de cada item, caso for digitado certo o id daquele item irá para um textbox 2, algo como:

     

    string nome = textBox1.Text;
    
    //Faz a leitura no XML e compara o nome com o "name" do xml
    
    //Se o texto digitado no textBox1 for igual ao name do xml
    TextBox2.Text = id //que é o valor do campo id naquele item do xml
    


    Então se eu digitar "carro" no textBox1, aparecerá "1" no textBox2.

    Obrigado desde já.

     


    terça-feira, 26 de julho de 2011 00:32

Respostas

  • Olá,

    Você pode usar DataSet:

        public partial class Form1 : Form
        {
            DataSet ds = new DataSet();
     
            public Form1()
            {
                InitializeComponent();
                ds.ReadXml("dados.xml");
            }
     
            private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                textBox2.Text = "";
                foreach (DataRow linha in ds.Tables[0].Rows)
                {
                    if (linha["name"].ToString() == textBox1.Text)
                    {
                        textBox2.Text = linha["id"].ToString();
                    }
                }
            }
        }
    

    []s, 


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Sugerido como Resposta Vitor Mendes terça-feira, 26 de julho de 2011 00:54
    • Marcado como Resposta maozao terça-feira, 26 de julho de 2011 01:01
    terça-feira, 26 de julho de 2011 00:49

Todas as Respostas

  • Olá,

    Você pode usar DataSet:

        public partial class Form1 : Form
        {
            DataSet ds = new DataSet();
     
            public Form1()
            {
                InitializeComponent();
                ds.ReadXml("dados.xml");
            }
     
            private void textBox1_KeyUp(object sender, KeyEventArgs e)
            {
                textBox2.Text = "";
                foreach (DataRow linha in ds.Tables[0].Rows)
                {
                    if (linha["name"].ToString() == textBox1.Text)
                    {
                        textBox2.Text = linha["id"].ToString();
                    }
                }
            }
        }
    

    []s, 


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    • Sugerido como Resposta Vitor Mendes terça-feira, 26 de julho de 2011 00:54
    • Marcado como Resposta maozao terça-feira, 26 de julho de 2011 01:01
    terça-feira, 26 de julho de 2011 00:49
  • Olá, tente fazer desta maneira:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication3
    {
      public partial class Form1 : Form
      {
        public Form1()
        {
          InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
          if (txtValor.Text != "")
          {
            //Instanci de Dataset
            DataSet ds = new DataSet();
    
            //Atribuindo XML ao DataSet
            ds.ReadXml(@"C:\XMLFile1.xml");
    
            //Comparando se valor digitado existe no DataSet
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
              //Verificando se valor digitado existe no DataSet
              if (txtValor.Text == ds.Tables[0].Rows[i]["name"].ToString())
              {
                //Atribuindo id ao txtResultado
                txtResultado.Text = ds.Tables[0].Rows[i]["id"].ToString();
              }
            }
          }
        }
      }
    }
    
    

    Referencias:
    http://msdn.microsoft.com/en-us/library/360dye2a.aspx
     
    Vitor Mendes | Seu feedback é muito importante para todos!
    terça-feira, 26 de julho de 2011 00:53
  • Muito obrigado.

    Funcionou perfeitamente!

    terça-feira, 26 de julho de 2011 01:02