martes, 1 de julio de 2008

Lectura de archivos XML en .NET con C#

Siguiendo con el desarrollo de mi proyecto fin de master, me he encontrado con la necesidad de saber el contenido de ciertos archivos XML, llamados KML. En mi caso, principalmente necesito saber las coordenadas de un punto de interés que este archivo guardará.

En .NET es relativamente sencillo realizar un pequeño parser para la lectura y evaluación de un archivo XML. Lo primero que se debe hacer es añadir el namespace System.XML a la solución del proyecto. Este namespace contiene todas las clases y funciones para la lectura del fichero.

Imaginemos un fichero XML muy esquemático como el siguiente:

<sitios>
<lugar>
<nombre>Edificio Valdés Salas</nombre>
<coordenadas>43.36176418283314,-5.846278832424399</coordenadas>
</lugar>
<lugar>
<nombre>Plaza de América</nombre>
<coordenadas>43.3944736223344,-5.6649383733772823</coordenadas>
</lugar>
</sitios>

Para la lectura de este fichero XML, el parser utilizado podría ser el siguiente:


using System.XML;
namespace ParserXML
{
Class Program
{
Static void main(String[] args)
{
XMLDocument documentoXML = new XMLDocument();
documentoXML.Load("fichero.xml");
XmlNodeList sitios = documentoXML.GetElementsByTagName("Sitios");
XmlNodeList listaSitios = ((XmlElement)sitios[0]).GetElementsByTagName("Lugar");
foreach(XmlElement nodoLista in listaSitios)
{
int i = 0;
XmlNodeList coordenadas = nodoLista.GetElementsByTagName("Coordenadas");
Console.WriteLine(coordenadas[i].InnerText);
}
}
}
}