martes, 11 de diciembre de 2007

Cómo leer un documento XML con Java

Buenas:

aquí os dejo otro "cómo" que he escrito tras estar dando vueltas por internet. Creo que es algo muy util para todo programador, y como a mi me ha servido para el proyecto en el que estoy metido, espero que a vosotros también os sirva. (Si te interesa o te ha sido útil, deja un comentario, que es gratis! XD )


/* Pasos que hay quue hacer para leer un XML:
* 1.- Crear un DocumentBuilderFactory
* 2.- Con él, crear un DocumentBuilder
* 3.- Crear un File a partir de la ruta a tu XML
* 4.- Crear un Document
* 5.- Volcar el contenido del xml mediante el método parser del builder
* 6.- Crear un XmlDocument
* 7.- Imprimirlo por pantalla
*/


import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import java.io.File;
import java.io.IOException;
import org.apache.crimson.tree.XmlDocument;
import org.w3c.dom.Document;
import org.w3c.dom.DOMException;
import com.sun.org.apache.xerces.internal.xni.parser.XMLDocumentFilter;


public class lectorXML{

static Document document;
static String mixml = "unficheroXML.xml";

public static void main(String args[]){

DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(new File(mixml));

XmlDocument xdoc = (XmlDocument) document;
xdoc.write(System.out);

} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}
}

12 comentarios:

Anónimo dijo...

Este post también os puede ayudar Java y XML con SAX

Fandez dijo...

Gracias por el comentario emifus, espero que sea util a mis lectores.
Un saludo

arawaco dijo...

Puede que parezca un «arqueólogo» la entrada me fue muy útil.
gracias.

Fandez dijo...

¿Un arqueólogo? :)
Gracias a ti por el comentario
Un saludo

Anónimo dijo...

Muy bueno, sólo una cosa, SAX no permite escribir archivos XML y DOM si.

Un saludo y gracias,

Cloudito.

Cashondo dijo...

Copio todo, me he tenido que bajar el paquete Crimson, y cuando lo ejecuto me da el siguiente error a la hora de crear el xdoc:

Exception in thread "main" java.lang.ClassCastException: org.apache.xerces.dom.DeferredDocumentImpl cannot be cast to org.apache.crimson.tree.XmlDocument

Sabes cómo podría arreglarlo?
Gracias. Un saludo.

Anónimo dijo...

muy bueno me fue de gran ayuda

bemba dijo...

Me sirvio de mucho para empezar a leer xml gracias !!!

Miguel A. dijo...

Muchas gracias, me ha sido muy útil.

Anónimo dijo...

Muy bueno y simple!!! Muchas gracias!!!

Anónimo dijo...

Para los que necesitan del paquete crimsom, un pequeño detalle (gentileza de jarfinder.com):

org.apache.crimson.tree.XmlDocument.Catalog
known versions

class org.apache.crimson.tree.XmlDocument.Catalog [566 bytes, jvm >= 1.4 ]
rt.jar
class org.apache.crimson.tree.XmlDocument.Catalog [1072 bytes, jvm >= 1.1 ]
crimson.jar
crimson-1.1.3.jar
crimson.jar

Estoy desarrollando la solución propuesta...

Anónimo dijo...

ummm no me funciono