PDA

View Full Version : [Java] Leggere un file xml remoto


leonapster
15-02-2008, 12:41
In pratica dovrei leggere un xml e poi inserire tutti i dati in una Table.
Quindi non sò se sia meglio SAX o DOM.

Cmq sia quale codice devo scrivere e quali package importare?

Angus
15-02-2008, 13:12
In pratica dovrei leggere un xml e poi inserire tutti i dati in una Table.
Quindi non sò se sia meglio SAX o DOM.

Cmq sia quale codice devo scrivere e quali package importare?

1 piccolo consiglio: se il file può essere molto grande vai con SAX ;)

leonapster
15-02-2008, 13:19
no, il file dovrebbe essere abbastanza piccolo (max 100 righe)

Finora ho fatto questo:


import javax.xml.parsers.*;
import org.w3c.dom.*;


public class AnalisiDOM {

private Document d;
private Element r;

public AnalisiDOM(String file) {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder domParser = dbf.newDocumentBuilder();


}

}


Ora come gli dico l'url del file xml?

vladix
15-02-2008, 13:24
il file dovrebbe essere abbastanza piccolo (max 100 righe)


DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document xdoc = docBuilder.parse (file);

leonapster
15-02-2008, 13:28
i package sono

import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.w3c.dom.Document;


?

vladix
15-02-2008, 13:30
si import javax.xml.parsers.*;
import org.w3c.dom.*;

leonapster
15-02-2008, 13:32
Ho fatto così:

Ma ottengo :

\AnalisiDOM.java:17: unreported exception javax.xml.parsers.ParserConfigurationException; must be caught or declared to be thrown

\AnalisiDOM.java:18: unreported exception org.xml.sax.SAXException; must be caught or declared to be thrown


import javax.xml.parsers.*;
import org.w3c.dom.*;





public class AnalisiDOM {



public AnalisiDOM(String file) {


file = "http://www.repubblica.it/rss/cronaca/rss2.0.xml";

DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document xdoc = docBuilder.parse (file);

}
}

Angus
15-02-2008, 13:32
no, il file dovrebbe essere abbastanza piccolo (max 100 righe)

Finora ho fatto questo:


import javax.xml.parsers.*;
import org.w3c.dom.*;


public class AnalisiDOM {

private Document d;
private Element r;

public AnalisiDOM(String file) {

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder domParser = dbf.newDocumentBuilder();


}

}


Ora come gli dico l'url del file xml?

Prova con http://java.sun.com/javase/6/docs/api/javax/xml/parsers/DocumentBuilder.html#parse(java.lang.String)

oppure tramite http://java.sun.com/javase/6/docs/api/java/net/URL.html#openStream()

vladix
15-02-2008, 13:38
perche e definito 2 volte
la prima qui




public AnalisiDOM(String file) {

e la sconda qui

String file = "http://www.repubblica.it/rss/cronaca/rss2.0.xmll";

vladix
15-02-2008, 13:41
devi gestire questi errori ParserConfigurationException , IOException, SAXException , ParseException

ma nn usi un ide ?

leonapster
15-02-2008, 13:42
devi gestire questi errori ParserConfigurationException , IOException, SAXException , ParseException

ma nn usi un ide ?

si uso NetBeans 6.1

vladix
15-02-2008, 13:46
cmq , le gestione e + o - cosi DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder;
try {
docBuilder = docBuilderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO
}
Document xdoc;
try {
xdoc = docBuilder.parse ("");
} catch (SAXException e) {
// TODO
} catch (IOException e) {
// TODO
}

leonapster
15-02-2008, 13:52
cmq , le gestione e + o - cosi DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder;
try {
docBuilder = docBuilderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO
}
Document xdoc;
try {
xdoc = docBuilder.parse ("");
} catch (SAXException e) {
// TODO
} catch (IOException e) {
// TODO
}

Scusa ancora... Ma per SAXException e IOException mi dice

\AnalisiDOM.java:25: cannot find symbol

symbol : class SAXException
location: class AnalisiDOM
} catch (SAXException e) {

vladix
15-02-2008, 14:03
e che ne so , la devi importare , cmq io ho creato un nuovo progetto con questa classe e compilla
package biz.vladix;





import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;

/**
*
* @author Vladix
*/
public class Main {

{
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = null;
try {
docBuilder = docBuilderFactory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
// TODO
}
Document xdoc;
try {
xdoc = (Document) docBuilder.parse ("");
} catch (SAXException e) {
// TODO
} catch (IOException e) {
// TODO
}
}

}