Codificación del archivo al leer un XML con XmlTextReader en C#

Cuando intentamos leer un archivo XML con XmlTextReader en C# y el archivo no proporciona el tipo de codificación nos saltará un error por contener caracteres extraños.

Todos los archivos XML indican el tipo de codificación con la siguiente linea: <?xml version="1.0" encoding="ISO-8859-1" ?>

Esta linea es la que utiliza XmlTextReader para saber como esta codificado el archivo, pero como ya he dicho podemos encontrarnos con el problema de que esta linea no se encuentre en el fichero y tengamos que indicarle a XmlTextReader que codificación tiene que usar.

Existen dos formas de hacer esto, una seria leer el fichero y volver a escribirlo añadiendo la linea de codificación o leer el fichero directamente e indicarle el tipo de codificación que debe utilizar.

Yo os voy a enseñar la segunda opción porque creo que es la más eficiente, os muestro como seria:

1
2
StreamReader leer_archivo = new StreamReader(direccion_archivo.Text, Encoding.Default);
XmlTextReader leer_xml = new XmlTextReader(leer_archivo);

Como veis es muy sencillo, leemos el archivo con StreamReader y le indicamos el tipo de codificación y después se lo pasamos a XmlTextReader.

Recordaros que debéis de utilizar el namespace System.IO, namespace System.Xml y el namespace System.Text

Espero que os sea de utilidad.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Notificación de comentarios

Si se suscribirse cuando se publique un nuevo comentario se le notificará por correo electrónico, de esta forma podrá estar informado de todos los comentarios y podrá ver si han respondido al suyo.

También puedes suscribirte sin comentar.