¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. C# 10
  3. LINQ to XML
Extrait - C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
Extractos del libro
C# 10 Desarrolle aplicaciones Windows con Visual Studio 2022
4 opiniones
Volver a la página de compra del libro

LINQ to XML

Los objetos XML

LINQ to XML es una implementación del lenguaje de consulta para documentos XML. El espacio de nombres System.Xml.Linq expone objetos que permiten trabajar con documentos XML en memoria de manera sencilla.

1. XDocument

La clase XDocument representa al documento XML. Contiene los miembros que permiten acceder a los demás objetos de tipo XElement, XNamespace, XComment y XAttribute.

Los dos métodos más importantes de esta clase son Load y Save. El método estático Load permite cargar un documento XML desde una ruta de acceso o desde una URL y almacenarlo en memoria, en un objeto XDocument:

XDocument xDocument = XDocument.Load(@"C:\miArchivo.xml"); 

El documento XML también puede provenir de un objeto TextReader o XmlReader y se pasa como argumento al método Load.

Una vez que se carga en memoria el documento, es posible trabajar con sus propiedades:

string s1 = xDocument.Root.Name.ToString();  
string s2 = xDocument.FirstNode.NodeType.ToString(); 

El otro método importante de la clase XDocument es el método Save, que permite hacer copias de seguridad del documento XML que está en memoria en un archivo en disco, un objeto TextWriter o un objeto XmlWriter:

xDocument.Root.Add(new XAttribute("NuevoAtributo",  
                                  "NuevoValor"));  
xDocument.Save(@"C:\miArchivo.xml"); 

2. XElement

Uno de los tipos que más se usan para trabajar con documentos...

Ejecutar consultas con LINQ

LINQ permite realizar consultas sobre un documento XML. Los objetos que se han presentado anteriormente XDocument, XElement, e incluso XAttribute, permiten extraer los datos deseados.

Las consultas LINQ to XML siguen los mismos principios que la sintaxis LINQ general.

Los siguientes ejemplos se basan en el archivo de ejemplo LinqToXML.xml:

<?xml version="1.0" encoding="utf-8"?>  
<SelMailer>  
  <MailServer ID="1">  
    <Host>mail.midominio.com</Host>  
    <Username>MiUsuario</Username>  
    <Password>miContraseña</Password>  
  </MailServer>  
  <MailServer ID="2">  
    <Host>mail.midominio2.com</Host>  
    <Username>MiUsuario2</Username>  
    <Password>miContraseña2</Password>  
  </MailServer>  
  <Sender ID="1">  
    <Name>mi nombre</Name>  
    <Email>email@midominio.com</Email>  
  </Sender>  
  <MailServerSender MailServerID="1" SenderID="1" />  
  <MailServerSender MailServerID="2" SenderID="1"...