XML significa Extensible Markup Language y es un formato de datos ampliamente utilizado para el almacenamiento estructurado de información, ya sea para libros de direcciones, datos meteorológicos u otras colecciones de datos. En esta guía te mostraré cómo puedes procesar archivos XML en C# de manera efectiva utilizando LINQ (Language Integrated Query). Nos dedicaremos paso a paso al procesamiento, ordenación y filtrado de datos XML.
Conclusiones más importantes
- XML es ideal para el almacenamiento estructurado de datos.
- LINQ permite una consulta y manipulación eficiente de datos XML.
- Puedes filtrar con LINQ según criterios específicos y ordenar los resultados.
- La combinación de XML y LINQ mejora la legibilidad y el manejo de datos en C#.
Leer y preparar datos XML
Para trabajar con datos XML, primero necesitas los namespaces correspondientes. Estos son esenciales para la lectura y el procesamiento de los datos XML.
Primero añadimos los namespaces necesarios:

La clase central que utilizaremos es XDocument. Representa un documento XML con el que podemos procesar nuestros datos XML fácilmente. En nuestro ejemplo, crearemos una instancia de esta clase para inicializar un documento XML.
Instanciación del XDocument
En el siguiente paso, crearás una instancia de XDocument que lee tus datos XML. Nos referimos a esta instancia como plzxdoc.
Con el comando Parse, llenas el objeto con tu cadena XML. Este paso es fundamental ya que te permite almacenar y manipular los datos XML en tu variable plzxdoc.
Realizar consultas LINQ sobre datos XML
Una vez hayas cargado tu documento XML, se realiza la consulta importante. LINQ te permite filtrar ciertos datos de manera sencilla. Para nuestro ejemplo, utilizaremos LINQ to XML para filtrar todos los códigos postales.
Preparar la consulta LINQ
Esta consulta recorrerá todos los elementos del documento XML que representan un código postal y los filtrará por la localidad “Berlín”. Como resultado, obtendrás solo los códigos postales que cumplan esta condición.
Ordenación de los resultados
Con LINQ también puedes ordenar los resultados filtrados.

En este caso, el código postal se ordena de manera descendente, mostrando primero los códigos postales más altos.
Salida de los resultados
Ahora que tienes los códigos postales filtrados y ordenados, es hora de mostrarlos en la consola o en una interfaz de usuario.
Bucle ForEach para la salida
Con este bucle accedes a los valores del barrio y del código postal y los muestras formateados en la consola.
Resumen – Programación LINQ con datos XML en C
En esta guía, has aprendido cómo leer, filtrar y mostrar datos XML en C# utilizando LINQ. Al comienzo, conociste los fundamentos de XML y LINQ, e integraste los namespaces correspondientes. Luego, creaste una instancia de XDocument y utilizaste una consulta LINQ para procesar los datos. Finalmente, ordenaste los datos filtrados y los mostraste en la consola.
Preguntas frecuentes
¿Qué es XML?XML significa Extensible Markup Language y se utiliza para almacenar datos de forma estructurada.
¿Qué significa LINQ?LINQ es un lenguaje para la integración de consultas en.NET que permite consultar y manipular datos de manera declarativa.
¿Cómo filtro datos XML con LINQ?Puedes filtrar datos XML con una consulta LINQ definiendo condiciones para los elementos y atributos deseados, por ejemplo, where (string)plz.Element("Ort") == "Berlín".
¿Cómo ordeno resultados con LINQ?Los resultados se pueden ordenar utilizando los métodos OrderBy o OrderByDescending, especificando las propiedades deseadas por las que se quiere ordenar.