8 de mayo de 2015

Buscador XML con C#

se va buscar informacion especifica en un archivo xml y se va mostrar esa información especifica en un listView, muestro el archivo prueba.xml


  
    Pablo el primero
    Programador Cliente-Servidor
  
  
    Pablo el segundo
    Programador Web
  
  
Búsqueda XML según atributo se utilizara Linq to XML para realizar la búsqueda según valor del atributo XML
 string path = "prueba.xml";
            listView1.Items.Clear();

            XElement doc = XElement.Load(path);

            // var result = from persona in doc.Descendants("persona")
            var result = from persona in doc.Elements("persona")
                         where persona.Attribute("id").Value == "001"
                         select new
                         {
                             id = Convert.ToString(persona.Attribute("id").Value).Trim(),
                             nombre = Convert.ToString(persona.Element("nombre").Value).Trim(),
                             ocupacion = Convert.ToString(persona.Element("ocupacion").Value).Trim()
                         };

            foreach (var persona in result)
            {
                ListViewItem nombre = new ListViewItem("  " + persona.nombre + "  ");
                ListViewItem ocupacion = new ListViewItem("  " + persona.ocupacion + "  ");
                listView1.Items.Add("");
                listView1.Items.Add(nombre);
                listView1.Items.Add(ocupacion);
                listView1.Items.Add("");
                listView1.Items.Add("");
            }
Búsqueda XML segun valor se utilizara Linq to XML para realizar la búsqueda según valor del nodo XML
      string path = "prueba.xml";

            listView1.Items.Clear();

            XElement doc = XElement.Load(path);

            // var result = from persona in doc.Descendants("persona")
            var result = from persona in doc.Elements("persona")
                         where persona.Element("nombre").Value == "Pablo el primero"
                         select new
                         {
                             id = Convert.ToString(persona.Attribute("id").Value).Trim(),
                             nombre = Convert.ToString(persona.Element("nombre").Value).Trim(),
                             ocupacion = Convert.ToString(persona.Element("ocupacion").Value).Trim()
                         };

            foreach (var persona in result)
            {
                ListViewItem nombre = new ListViewItem("  " + persona.nombre + "  ");
                ListViewItem ocupacion = new ListViewItem("  " + persona.ocupacion + "  ");
                listView1.Items.Add("");
                listView1.Items.Add(nombre);
                listView1.Items.Add(ocupacion);
                listView1.Items.Add("");
                listView1.Items.Add("");
            }