Leer archivos XML desde C#
Leer archivos XML desde C#
XML, siglas en inglés de Extensible Markup Language (lenguaje extensible de marcas), es un metalenguaje extensible de etiquetas desarrollado por el World Wide Web Consortium (W3C). Es una simplificación y adaptación del SGML y permite definir la gramática de lenguajes específicos. Por lo tanto XML no es realmente un lenguaje en particular, sino una manera de definir lenguajes para diferentes necesidades. Algunos de estos lenguajes que usan XML para su definición son XHTML, SVG, MathML.
XML no ha nacido sólo para su aplicación en Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.
En el siguiente ejemplo será para leer datos de una conexión. La estructura de un archivo XML es la siguiente
<?xml version=’1.0′ encoding=’UTF-8′?>
<conexion>
<datos>
<bd>ejemplo</bd>
<user>root</user>
<host>localhost</host>
<password>ejemplo</password>
</datos>
</conexion>
Si observamos <datos> es un nodo que se encuentra dentro del nodo padre <conexion> y a su vez del nodo hijo <datos> se derivan varios nodos mas. La estructura de un nodo es la siguiente <nombreNodo></nombreNodo>. Como ven es sumamente sencillo crear un archivo XML.
Ota forma de escribir archivos XML es en forma de fila como se muestra en el asiguiente ejemplo.
<?xml version=’1.0′ encoding=’UTF-8′?>
<conexion>
<datos bd=”ejemplo” user=”root” host=”localhost” password=”123” />
</conexion>
El ejemplo esta basado en el primer ejmplo, ahora vamos a ver el código necesario para leer un XML desde C#
Creamos un nuevo proyecto en C# en modo aplicación para Windows lo primero que debemos de hacer es agregar un namespace para poder trabajar con XML como se muestra a continuación.
using System.Xml;
Ahora vamos a implementar y explicar un poco el código que utilizamos para poder tener acceso a nodos dentro de un archivo XML, Es un método llamado LeeXML Que después de haber obtenido los valores de dicho archivo regresa un string llamado cadena Conexión.
public string leeXML() { XmlDocument xDoc = new XmlDocument(); xDoc.Load("datosConexion.xml"); //la ubicación del archivo XML con el que vamos a trabajar XmlNodeList conexion = xDoc.GetElementsByTagName("conexion"); XmlNodeList listaDatos = ((XmlElement)conexion[0]).GetElementsByTagName("datos"); //obtenemos una lista con los datos de los nodos que se encuentran dentro del nodo datos string cadenaConexion=""; foreach (XmlElement nodo in listaDatos ) //obtenemos el valor de cada uno de los nodos en la lista { XmlNodeList nBD = nodo.GetElementsByTagName("bd"); XmlNodeList nUser = nodo.GetElementsByTagName("user"); XmlNodeList nHost = nodo.GetElementsByTagName("host"); XmlNodeList nPassword = nodo.GetElementsByTagName("password"); cadenaConexion = string.Format("DataBase={0}; DataSource={1}; Port=3306; User={2}; Password={3}", nBD[0].InnerText, nHost[0].InnerText, nUser[0].InnerText, nPassword[0].InnerText); } return cadenaConexion; }
Espero y les sea de ayuda, Saludos…
Quizá te interese :
Tenemos un archivo XML con la siguiente estructura en la cual cada nodo <item> representa ...
El control TreeView se utiliza para mostrar datos jerárquicos, como una tabla de conteni ...
Que es un ORM. El mapeo objeto-relacional (más conocido por su nombre en inglés, Object-Relatio ...








