Leer un fichero XML y obtener sus datos

Isidro
21 de Noviembre del 2001
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.

brunosm
21 de Noviembre del 2001
¿Con XSL?

Java XALAN o el parser de Microsoft

Joaquin
21 de Noviembre del 2001
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.


Juan Antonio (Ozito)
21 de Noviembre del 2001
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.