elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  error al leer archivo xml
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: error al leer archivo xml  (Leído 3,841 veces)
Mauro10

Desconectado Desconectado

Mensajes: 3


Ver Perfil
error al leer archivo xml
« en: 6 Junio 2013, 17:44 pm »

Hola comu, les tengo una consulta, necesito leer un archivo xml generado por otro programa. e visto muchas guias y tutoriales. pero no puedo ni abrir el archivo, ya probe con dom, sax y ahora estoy probando con JDom.
todos el mismo error:

Código:
com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Byte no válido 1 de la secuencia UTF-8 de 1 bytes
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:687)
at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:557)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1753)
at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.skipChar(XMLEntityScanner.java:1426)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2754)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:264)
at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
at Vistas.Principal.archivosMouseClicked(Principal.java:258)

mi codigo para abrir el archivo es este:

Código:
import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

SAXBuilder builder = new SAXBuilder();
        File xmlFile = new File(RUTA COMPLETA DEL XML);
        try{
            Document document = (Document) builder.build( xmlFile );//ACA TIRA LA EXCEPCION
            Element rootNode = document.getRootElement();
            List list = rootNode.getChildren( "RaceResults" );
           
        }catch ( IOException io ) {
            io.printStackTrace();
        }catch ( JDOMException jdomex ) {
            jdomex.printStackTrace();
        }

mi archivo xml empieza asi:

Código:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rF [
<!ENTITY rFEnt "rFactor Entity">
]>
<rFactorXML version="1.0">
<RaceResults>
<Setting>Multiplayer</Setting>
<ServerName>rFactor</ServerName>
<PlayerFile>player</PlayerFile>
<DateTime>1369875530</DateTime>
<TimeString>2013/05/29 21:58:50</TimeString>
.
.
.
.
.

como ven en el xml, es generado por un juego, el rfactor, estoy haciendo un programa que me lea el Log, escrito en xml, y me muestre de manera mas amigable.

XML Original: https://docs.google.com/file/d/0B6Qrf-i_gvhfVFRiZW5GZHpmdU0/edit?usp=sharing

si alguien conoce algo sobre ese error, seria tan amable de darme una mano?


En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: error al leer archivo xml
« Respuesta #1 en: 6 Junio 2013, 21:17 pm »

El problema radica en que ese archivo no es UTF-8, sino ISO-8859-1. Son codificaciones distintas, por eso no se puede leer. Esa es la causa del error, la solución sería convertir el archivo a UTF-8..


En línea

Mauro10

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: error al leer archivo xml
« Respuesta #2 en: 7 Junio 2013, 01:22 am »

sabes como puedo convertir el archivo (mediante codigo) a UTF-8?
En línea

RyogiShiki


Desconectado Desconectado

Mensajes: 745


げんしけん - Hikkikomori FTW!!!


Ver Perfil WWW
Re: error al leer archivo xml
« Respuesta #3 en: 7 Junio 2013, 02:29 am »

Una forma de hacerlo sería agregando este método:

Código
  1. public String convertFileToUTF8String(File file, String originalEncoding) {
  2.  
  3.        try {
  4.            FileInputStream fis = new FileInputStream(file);
  5.            StringBuilder sb = new StringBuilder();
  6.            BufferedReader br = new BufferedReader(new InputStreamReader(fis, originalEncoding));
  7.            String line;
  8.            while((line = br.readLine()) != null) {
  9.                sb.append(line);
  10.                sb.append('\n');
  11.            }
  12.  
  13.            String contents = new String(sb.toString().getBytes("UTF-8"));
  14.        } catch (Exception ex) {}
  15.  
  16.        return contents;
  17.    }

Y entonces construyes el documento así:

Código
  1. Document document = (Document) builder.build(convertFileToUTF8String(new File("ruta/del/archivo"), "ISO-8859-1"));
« Última modificación: 7 Junio 2013, 02:34 am por RyogiShiki » En línea

Mauro10

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: error al leer archivo xml
« Respuesta #4 en: 7 Junio 2013, 14:51 pm »

Gracias!! lo estaré probando.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
leer un archivo txt « 1 2 3 »
Programación Visual Basic
RED_HORSE 22 8,318 Último mensaje 14 Abril 2006, 22:06 pm
por RED_HORSE
Leer archivo .civ « 1 2 »
Programación Visual Basic
Tyrz 13 5,049 Último mensaje 9 Septiembre 2007, 12:54 pm
por Tyrz
Error al poner una estructura al leer un archivo de acceso directo
.NET (C#, VB.NET, ASP)
javier234- 8 6,260 Último mensaje 2 Febrero 2011, 23:39 pm
por javier234-
[Python] Error leer archivo
Scripting
Arnau27 4 5,224 Último mensaje 1 Mayo 2012, 11:39 am
por 0x5d
Error al querer leer el último registro en archivo .txt [python] « 1 2 »
Scripting
DanielPy 16 8,088 Último mensaje 31 Marzo 2018, 08:38 am
por Avispon99
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines