Bonjour
Je consomme un flux xml de météo de google avec sax pour une application de météo.
Le problème que mon sax ne veux pas des accents dans le fichier xml fourni par google <<http://www.google.com/ig/api?weather=paris&hl=fr>>
voila a quoi ressemble le fichier xml
voila le code de mon conteneur de donné
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 <xml_api_reply version="1"> <weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0"> <forecast_information> <city data="Paris, Île-de-France"/> <postal_code data="paris"/> <latitude_e6 data=""/> <longitude_e6 data=""/> <forecast_date data="2012-07-28"/> <current_date_time data="1970-01-01 00:00:00 +0000"/> <unit_system data="SI"/> </forecast_information> <current_conditions> <condition data="Ciel nuageux"/> <temp_f data="66"/> <temp_c data="19"/> <humidity data="Humidité : 94 %"/> <icon data="/ig/images/weather/cloudy.gif"/> <wind_condition data="Vent : O à 13 km/h"/> </current_conditions> <forecast_conditions> <day_of_week data="sam."/> <low data="15"/> <high data="26"/> <icon data="/ig/images/weather/chance_of_storm.gif"/> <condition data="Risques de tempête"/> </forecast_conditions> <forecast_conditions> <day_of_week data="dim."/> <low data="15"/> <high data="22"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Ensoleillé dans l'ensemble"/> </forecast_conditions> <forecast_conditions> <day_of_week data="lun."/> <low data="16"/> <high data="21"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Partiellement ensoleillé"/> </forecast_conditions> <forecast_conditions> <day_of_week data="mar."/> <low data="18"/> <high data="27"/> <icon data="/ig/images/weather/mostly_sunny.gif"/> <condition data="Partiellement ensoleillé"/> </forecast_conditions> </weather> </xml_api_reply>
Comment je peux faire pour remédier a ce problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 package com.icozz.meteo; import java.io.IOException; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.w3c.dom.ProcessingInstruction; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; import android.content.Context; import android.util.Log; public class ContenuData { static public Context context; public ContenuData() { } public static ArrayList getFeeds() { // On passe par une classe factory pour obtenir une instance de sax SAXParserFactory fabrique = SAXParserFactory.newInstance(); SAXParser parseur = null; ArrayList entries = null; try { // On "fabrique" une instance de SAXParser parseur = fabrique.newSAXParser(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } // On défini l'url du fichier XML URL url = null; try { url = new URL("http://www.google.com/ig/api?weather=paris&hl=fr"); } catch (MalformedURLException e1) { e1.printStackTrace(); } /* * Le handler sera gestionnaire du fichier XML c'est à dire que c'est lui qui sera chargé * des opérations de parsing. On vera cette classe en détails ci après. */ DefaultHandler handler = new ParseurXml(); try { // On parse le fichier XML InputStream input = url.openStream(); if(input==null) Log.i("erreur android","Probléme dans url"); else { parseur.parse(input, handler); // On récupère directement la liste des feeds entries = ((ParseurXml) handler).getData(); } } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // On la retourne l'array list return entries; } }
Cordialement
Partager