[Talk-es] Crear un XML bajandolo de osm
Alberto Fernández
infjaf en gmail.com
Jue Feb 19 18:23:37 GMT 2009
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 en openstreetmap.org
> >> http://lists.openstreetmap.org/listinfo/talk-es
> >
> >
> > _______________________________________________
> > Talk-es mailing list
> > Talk-es en openstreetmap.org
> > http://lists.openstreetmap.org/listinfo/talk-es
> >
> >
>
More information about the Talk-es
mailing list