Bonjour,
Je voudrais parser du XML distant via SAX
voici à quoi ressemble ma classe pour récupérer les données :
Et dans mon Activity (je développe pour Android) j'ai :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class data { private XMLReader saxReader; private SimpleContentHandler simpleContentHandler; private List<String> citations; public data() throws SAXException, IOException, ParserConfigurationException { saxReader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); simpleContentHandler = new SimpleContentHandler(); saxReader.setContentHandler(simpleContentHandler); URL url = new URL("http://www.evene.fr/rss/citation_jour.xml"); saxReader.parse(new InputSource(url.openStream())); } }
L'erreur viendrais de cette ligne :Code:
1
2
3
4
5
6
7
8
9
10
11
12 try { data d = new data(); Log.v("debug", "IT WORK !"); } catch (SAXException e) { Log.v("debug", "NOT WORKING ! 1"); Log.v("debug", "SAXException : " + e.getMessage()); e.printStackTrace(); } catch (IOException e) { Log.v("debug", "NOT WORKING ! 2"); Log.v("debug", "IOException : " + e.getMessage()); e.printStackTrace(); }
Et les erreurs associées sont :Code:saxReader.parse(new InputSource(url.openStream()));
Si vous avez une idée d'où çà pourrait venir.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 10-24 11:11:15.150: E/AndroidRuntime(922): java.lang.RuntimeException: Unable to start activity ComponentInfo{guigui.first.project/guigui.first.project.GuiguiActivity}: android.os.NetworkOnMainThreadException 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread.access$600(ActivityThread.java:122) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.os.Handler.dispatchMessage(Handler.java:99) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.os.Looper.loop(Looper.java:137) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread.main(ActivityThread.java:4340) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.lang.reflect.Method.invokeNative(Native Method) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.lang.reflect.Method.invoke(Method.java:511) 10-24 11:11:15.150: E/AndroidRuntime(922): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 10-24 11:11:15.150: E/AndroidRuntime(922): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 10-24 11:11:15.150: E/AndroidRuntime(922): at dalvik.system.NativeStart.main(Native Method) 10-24 11:11:15.150: E/AndroidRuntime(922): Caused by: android.os.NetworkOnMainThreadException 10-24 11:11:15.150: E/AndroidRuntime(922): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.net.InetAddress.lookupHostByName(InetAddress.java:391) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.net.InetAddress.getAllByName(InetAddress.java:220) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpEngine.connect(HttpEngine.java:303) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:273) 10-24 11:11:15.150: E/AndroidRuntime(922): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:168) 10-24 11:11:15.150: E/AndroidRuntime(922): at java.net.URL.openStream(URL.java:462) 10-24 11:11:15.150: E/AndroidRuntime(922): at guigui.first.project.data.<init>(data.java:46) 10-24 11:11:15.150: E/AndroidRuntime(922): at guigui.first.project.GuiguiActivity.onCreate(GuiguiActivity.java:37) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.Activity.performCreate(Activity.java:4465) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 10-24 11:11:15.150: E/AndroidRuntime(922): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
Merci :)