Advertisement
Fhernd

ModificacionArbolXml.cs

Jun 16th, 2016
2,804
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.91 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Xml.Linq;
  5.  
  6. namespace Recetas.CSharp.R0616
  7. {
  8.     public class ModificacionArbolXml
  9.     {
  10.         public static void Main()
  11.         {
  12.             Console.WriteLine ();
  13.            
  14.             // Carga del archivo XML:
  15.             XElement elementoRaiz = XElement.Load("CatalogoProductos.xml");
  16.            
  17.             // Muestra en la salida estándar el archivo XML original:
  18.             Console.WriteLine (elementoRaiz);
  19.            
  20.             Console.WriteLine ("\nPresione Enter para continuar...");
  21.             Console.ReadLine ();
  22.            
  23.             // Selecciona todos los elementos Producto:
  24.             IEnumerable<XElement> elementosProducto
  25.                 = from elemento in elementoRaiz.Element("Productos")
  26.                     .Elements()
  27.                     where (elemento.Name == "Producto")
  28.                     select elemento;
  29.                    
  30.             // Itera a través de los elementos Producto y cambia su ID:
  31.             foreach(XElement elemento in elementosProducto)
  32.             {
  33.                 // Obtiene el ID actual:
  34.                 int idActual = Int32.Parse((string) elemento.Attribute("ID"));
  35.                
  36.                 // Reemplaza el valor actual de ID:
  37.                 elemento.ReplaceAttributes(new XAttribute("ID", idActual + 1000));
  38.             }
  39.            
  40.             // Muestra en la salida estándar el árbol XML modificado:
  41.             Console.WriteLine (elementoRaiz);
  42.            
  43.             Console.WriteLine ("\nPresione Enter para continuar...");
  44.             Console.ReadLine ();
  45.            
  46.             // Remueve todos los elementos que contienen la palabra "café" en Descripción:
  47.             IEnumerable<XElement> elementosCafe = from elemento in
  48.                     elementoRaiz.Element("Productos").Elements()
  49.                 where (((string)elemento.Element("Descripcion")).Contains("café"))
  50.                 select elemento;
  51.                
  52.             foreach(XElement elemento in elementosCafe)
  53.             {
  54.                 elemento.Remove();
  55.             }
  56.            
  57.             Console.WriteLine (elementoRaiz);
  58.             Console.WriteLine ("Presione Enter para continuar...");
  59.             Console.WriteLine ();
  60.            
  61.             // Define un elemento para agregarlo al árbol:
  62.             XElement nuevoElemento = new XElement("Producto",
  63.                 new XAttribute("ID", 100003),
  64.                 new XElement("NombreProducto", "Café Irlandés"),
  65.                 new XElement("Descripcion", "Café ron y baileys"),
  66.                 new XElement("Precio", 4500),
  67.                 new XElement("Disponible", false)
  68.             );
  69.             elementoRaiz.Element("Productos").Add(nuevoElemento);
  70.            
  71.             Console.WriteLine (elementoRaiz);
  72.             Console.WriteLine ();
  73.            
  74.         }
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement