PDA

View Full Version : [JAVA] recuperare file XML da server


noodles83
22-10-2009, 10:33
Allora, non ho esperienza in programmazione di rete, la sto facendo ora all'università. Ma volevo provare a fare alcune cose.

Ho un client che deve recuperare un file XML da un server. L'indirizzo è noto.
Per fare questo devo utilizzare una socket e fare una richiesta esplicita http o posso utilizzare la URL con una openStream()?

ma come ottengo questo file? io ho bisogno di parsarlo per poi fare una elaborazione.

Che mi consigliate di fare? Potete anche motivarmi in breve la risposta. grazie :)

PGI-Bis
22-10-2009, 15:35
Puoi usare un URL. Un URL è come un file solo più "generale".

Con openStream() ottieni un flusso in lettura. Quel flusso lo puoi passare a qualsiasi oggetto che richieda un InputStream.

Per XML l'oggetto che può interessarti è DocumentBuilder. Ottieni un DocumentBuilder con DocumentBuilderFactory.

URL documentFile = new URL(http pimpumpam);
DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
DocumentBuilder xmlDocumentBuilder = fac.newDocumentBuilder();
org.w3d.dom.Document xmlDocument = xmlDocumentBuilder.parse(documentFile.openStream());

Fine. Da lì in poi xmlDocument è il tuo documento xml, coi suoi nodi e nodini, attributi ed elementi. La radice del documento xml è

org.w3c.dom.Element root = xmlDocument.getDocumentElement();

Uso i nomi pienamente qualificati per Element e Document perchè si sono altri oggetti con gli stessi nomi nel package javax.swing.text.

noodles83
28-10-2009, 16:54
grazie.

alla fine ho invece utilizzato openstream() per poi passarlo al SAX parser, che lavora su inputstream. ;)