Leer un fichero XML y obtener sus datos
Hola soy nuevo en esto del XML y se me plantea un problema. Necesito leer un fichero XML (del que tengo su DTD) y generar otro XML "solo" con las etiquetas que contengan algun dato. El problema se me plantea con etiquetas que estan anidadas, etc. Como puedo leerlo de una manera rapida y optima.
Muchas gracias.
Muchas gracias.
Hola
Tienes varias maneras.
La manera más rápida que se me ocurre es mediante una XSLT. XSLT es un lenguaje de transformación mediante el cual puedes convertir un documento XML en otro XML (en particular en HTML).
Para ello te hace falta un procesador de XSLT. Hay varios y son todos gratuitos: Xalan, XT, Saxon, etc.
Si quieres más información sobre las XSLT puedes visitar las siguientes direcciones:
http://html.programacion.net/taller/tw_xml_y_xslt.php
http://www.programacion.net/articulos/joa_svg2.php
Y otra manera es mediante un parser de XML. Existen también muchos y todos gratuitos: Xerces, XML4j, etc..
En este caso puedes utilizar dos APIS diferentes: DOM y Sax, aunque para lo que tu quieres hacer me parece que la más recomendable es Sax.
En esta dirección:
http://java.programacion.net/cursos.htm#java_xml
encontraras tutoriales en castellano sobre como trabajar con XML y Java.
Aunque insisto que me parece que la opción más facil es la de las XSLT.
Un saludo.
Tienes varias maneras.
La manera más rápida que se me ocurre es mediante una XSLT. XSLT es un lenguaje de transformación mediante el cual puedes convertir un documento XML en otro XML (en particular en HTML).
Para ello te hace falta un procesador de XSLT. Hay varios y son todos gratuitos: Xalan, XT, Saxon, etc.
Si quieres más información sobre las XSLT puedes visitar las siguientes direcciones:
http://html.programacion.net/taller/tw_xml_y_xslt.php
http://www.programacion.net/articulos/joa_svg2.php
Y otra manera es mediante un parser de XML. Existen también muchos y todos gratuitos: Xerces, XML4j, etc..
En este caso puedes utilizar dos APIS diferentes: DOM y Sax, aunque para lo que tu quieres hacer me parece que la más recomendable es Sax.
En esta dirección:
http://java.programacion.net/cursos.htm#java_xml
encontraras tutoriales en castellano sobre como trabajar con XML y Java.
Aunque insisto que me parece que la opción más facil es la de las XSLT.
Un saludo.
Depende de para que quieres el fichero de destino y de cómo quieres obtenerlo.
Si lo que quieres es un fichero en tu disco duro y obtenerlo desde la línea de comandos, te recomiendo que uses una XSLT, con XT o XALAN, como dice Joaquín.
Pero si lo que quieres es generarlo "al vuelo", es decir desde una página web, y mostrarlo en otra página web (o algo parecido) te aconsejo que utilices el API SAX de Java que junto con las páginas JSP o los servlets pueden hacer maravillas.
Si lo que quieres es un fichero en tu disco duro y obtenerlo desde la línea de comandos, te recomiendo que uses una XSLT, con XT o XALAN, como dice Joaquín.
Pero si lo que quieres es generarlo "al vuelo", es decir desde una página web, y mostrarlo en otra página web (o algo parecido) te aconsejo que utilices el API SAX de Java que junto con las páginas JSP o los servlets pueden hacer maravillas.