cancel
Showing results for 
Search instead for 
Did you mean: 

Lectura de xml ilegible

Daniel_MarianoR
Level 3
Estimados:

Estoy usando el objeto: Utility XML - Read File para extraer datos de una factura.
En este caso, el resultado no es el esperado, ya que la mayoría de los caracteres son ilegibles.

Si busco valores legibles, los obtengo.
Sin embargo, justamente necesito los otros valores.

¿Qué puedo hacer para que toda la factura sea legible o para obtener los datos que necesito?

Muchas gracias.


------------------------------
Daniel Mariano Ruiz
------------------------------
4 REPLIES 4

PabloSarabia
Level 11
Hola Daniel!

Me ha pasado mas veces, el problema suele ser el "encoding" del fichero que estas leyendo.

Para que interprete bien los caracteres especiales que tenemos en español, asegurate de que el fichero está en UTF8 antes de leerlo.

Si solamente quieres leer el contenido de un fichero de texto y te es complicado cambiar el encoding del propio fichero, tienes otra opción. El VBO "Utility - File Management" tiene una acción llamada "Read All Text from File". Esta acción usa por debajo la clase "StreamReader" y a esta le puedes poner que coja el encoding por defecto del fichero.

(Antes de tocar nada, te recomiendo hacer una copia o editar una copia de la acción o el VBO) Tendrías que editar la tarcera línea de la acción para añadir el System.Text.Encoding.Default

Dim sr As New StreamReader(File_Name, System.Text.Encoding.Default)

5446.png

Si lo comparo con el otro VBO, quedarian las cadenas de texto así. (Arriba el texto de la utilidad modificada, y abajo la del XML)

5447.png

Espero que esto te ayude!! Nos vemos en la comunidad.

Saludos 🙂

------------------------------
Pablo Sarabia
Solution Manager & Architect
Altamira Assets Management
Madrid
------------------------------

Hola Pablo.
Un gusto y agradezco la respuesta 🙂
(Respondo ahora ya que el jueves y viernes pasado fueron días feriados en mi país)

1 - Cuando escribís:
     "... asegurate de que el fichero está en UTF8 antes de leerlo."  
     ¿Cómo chequeo eso? (disculpá la ignorancia)

2 - He creado un objeto nuevo igual al Utility - File Management, pero con este agregado / modificación:
      Dim sr As New StreamReader(File_Name, System.Text.Encoding.Default)
      Sin embargo, aún la lectura sigue siendo deficiente. ¿En qué podría estar fallando?
5448.png

Gracias.



------------------------------
Daniel Mariano Ruiz
------------------------------

Hola Daniel,

El encoding del fichero lo suelo revisar utilizando Notepad++ (Lo puedes obtener aqui: https://notepad-plus-plus.org/downloads/). Es un editor de textos planos bastante útil.

Cuando abres un fichero con ese programa, abajo a la derecha te sale el encoding del archivo.
5451.png
Es raro que aún haciendo el cambio siga dando fallos. Podrias darme algun fichero de ejemplo o indicarme el encoding original del archivo?



Nos vemos en la comunidad 🙂 Saludos!

------------------------------
Pablo Sarabia
Solution Manager & Architect
Altamira Assets Management
Madrid
------------------------------

Hola Pablo.

Te muestro:
5455.pngTanto el Read XML como el nuevo Utility File M extraen la info, cada uno a su manera. Sin embargo, Con la modificación realizada al nuevo utility aún no puedo extraer correctamente los valores legibles.

5456.pngComo ves, el valor de "Versao" sí lo he podido conseguir correctamente, porque es legible.

y Realizada esta modificación, ahora correcta:
5457.png

Muchas gracias!

------------------------------
Daniel Mariano Ruiz
------------------------------