[XML] Lire et utiliser un Flux RSS
android et web service
Bonsoir,
je souhaite simplement crée un lecteur de Flux RSS et depuis hier soir je suis en train de tournée en rond sur les différents tuto disponibles ici et là...
Après avoir tester les divers méthodes j'en suis arrivé au code ci-dessus qui m'a parut être le plus simple.
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 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
| package com.chamsou.android.memo_duo;
import java.net.URL;
import java.util.ArrayList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class memo_duo extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try {
ArrayList listeRecette = renvoi_liste_recette_xml();
String myString = "";
for(int i=0; i<listeRecette.size(); i++) {
ArrayList tmp= (ArrayList) listeRecette.get(i);
myString = myString + tmp.get(0) + " importation réussie\n"; }
TextView Afficher = (TextView) findViewById(R.id.TextView01);
Afficher.setText(myString); }
catch (Exception e) { } }
public ArrayList<ArrayList> renvoi_liste_recette_xml() throws Exception{
//***********************création de notre tableau dinamique
ArrayList<ArrayList> aTableRetour = new ArrayList<ArrayList>();
//************************récupération du flux wml
URL myURL = new URL("http://java.developpez.com/index/rss");
DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
// création d'un constructeur de documents
DocumentBuilder constructeur = fabrique.newDocumentBuilder();
//*****************lecture du flux xml**************
Document document = constructeur.parse(myURL.openStream());
Element racine = document.getDocumentElement();
NodeList liste = racine.getElementsByTagName("item");
//remplissage de mon tableau
for(int i=0; i<liste.getLength(); i++){
ArrayList<String> aTableauTmp = new ArrayList<String>();
Element E1= (Element) liste.item(i);
//aTableRetour[i]= "";
aTableauTmp.add(E1.getAttribute("title"));
aTableauTmp.add(E1.getAttribute("description"));
aTableRetour.add(aTableauTmp); }
return aTableRetour; }
} |
Le problème est que celui ci ne récupère que les valeurs représentés dans des balises du genre :
Code:
<item titre="test1" texte="teste1"> </tiem>
alors que les fichiers XML des divers flux ne sont jamais représentés ainsi mais plutôt comme cela :
Code:
1 2 3 4
| <item>
<titre>teste1</titre>
<texte>teste1</texte>
</tiem> |
Dans le premier cas il m'affiche les valeurs et le second n'affiche rien.
Je me résigne donc a venir poster ici même si sa a l'air de quelque chose de basic :aie: Merci d'avance à ceux qui feront un geste lol...
divers sources qui m'ont amené à ce code :
http://java.developpez.com/faq/xml/?page=sommaire