El código que has puesto me funciona perfectamente, salvo quizás porque
no cierras al final los flujos

                paginaHtml.close();
                pw.flush();
                pw.close();

con esto el firefox lo abre perfectamente,
da un mensaje de "Este fichero XML no parece tener ninguna información
de estilo asociada. Se muestra debajo el árbol del documento." y muestra
el árbol de forma perfecta.


De todas formas, si simplemente vas a descargar, este código es mucho
más sencillo (y no te tienes que pelear con las codificaciones,
simplemente descargas)

                String lugar = "madrid";
                URL u = new URL(
                                
"http://gazetteer.openstreetmap.org/namefinder/search.xml?find=<"
                                                + lugar + ">&max=20&any=1");
                URLConnection s = u.openConnection();
                
                BufferedInputStream bis = new 
BufferedInputStream(s.getInputStream());
                BufferedOutputStream bos = new BufferedOutputStream(new
FileOutputStream("lugares.osm"));
                byte[] buffer = new byte[1024];
                int leidos = 0;
                while ((leidos = bis.read(buffer))> 0){
                        bos.write(buffer,0,leidos);
                }
                bos.flush();
                bos.close();
                bis.close();

El jue, 19-02-2009 a las 08:00 -0800, konan1986 escribió:
> Antes de nada, gracias a los dos por la ayuda..pero todavia no soy capaz..
> He modificado el codigo para llegar a:
> String lugar="madrid";
>  URL u = new
> URL("http://gazetteer.openstreetmap.org/namefinder/search.xml?find=<" +
> lugar + ">&max=20&any=1");
>             URLConnection s = u.openConnection();
>             System.out.println(u.getFile());
>             //Leer la página
>             BufferedReader paginaHtml;
>             paginaHtml = new BufferedReader(new
> InputStreamReader(u.openStream(),"UTF8"));
> 
>             
>              FileOutputStream fichero = null;
>              PrintWriter pw = null;
> 
>        
>             fichero=new FileOutputStream("directorio" + "\\" +
> "lugares.osm");
>             pw = new PrintWriter(new OutputStreamWriter(fichero, "UTF8"));
>             
>             String cadena="";
>             while ((cadena = paginaHtml.readLine()) != null) {
>                 pw.println(cadena.toString());
>                 System.out.println(cadena);
> 
>             }
> 
> Y me sigue creando el archivo xml mal, internet Explorer no me lo abre y
> Mozilla lo hace pero dandome un error..A ver si podeis ver algo.
> Gracias otra vez
> 
> 
> 
> 
> Alberto Fernández wrote:
> > 
> > Creo que vienen en UTF-8, asi que a la hora de leerlos:
> > 
> > paginaHtml = new BufferedReader(new
> > InputStreamReader(u.openStream(), "UTF-8"));
> > 
> > Pasarle el charset como segundo parámetro al InputStreamReader (ahora
> > mismo no se si le gustará más "UTF-8" o "utf8")
> > 
> > y para escribirlo:
> > 
> > pw = new PrintWriter(new OutputStreamWriter(fichero, "UTF-8"));
> > 
> > Espero que te sirva.
> > 
> > De todas formas, si vas a leer y escribir directamente sin leer nada,
> > mejor que uses BufferedInputStream y BufferedOutputStream directamente,
> > olvidandote de los charsets.
> > 
> > El lun, 16-02-2009 a las 23:40 +0100, Iván Sánchez Ortega escribió:
> >> El Lunes, 16 de Febrero de 2009, konan1986 escribió:
> >> > Pues la verdad es que no lo sé..lo unico que hago es lo que pongo de
> >> > codigo..no sé muy bien como tratar el texto de las formas que
> >> dices..como
> >> > podria ponerlo?? y cual deberia usar?
> >> 
> >> Depende del parser de XML que uses... Fíjate si en la cabecera de tu XML
> >> va un 
> >> <?xml encoding='UTF-8'?> o algo por el estilo. Mira si tu párser de XML 
> >> reconoce esa etiqueta, y/o le puedes forzar una codificación (no sé cómo
> >> se 
> >> hace en Java).
> >> 
> >> Todo lo que viene de OSM debería ser UTF-8 bien formado, salvo error.
> >> 
> >> En el peor de los casos, creo que podrías usar "tidy" para pasar los 
> >> caracteres no-ascii a entidades de XML, pero ahora mismo no sé cómo se
> >> haría.
> >> 
> >> 
> >> 
> >> _______________________________________________
> >> Talk-es mailing list
> >> Talk-es@openstreetmap.org
> >> http://lists.openstreetmap.org/listinfo/talk-es
> > 
> > 
> > _______________________________________________
> > Talk-es mailing list
> > Talk-es@openstreetmap.org
> > http://lists.openstreetmap.org/listinfo/talk-es
> > 
> > 
> 


_______________________________________________
Talk-es mailing list
Talk-es@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-es

Responder a