IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Chargement XML depuis un site


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 35
    Par défaut Chargement XML depuis un site
    Bonjour à tous, j'essaye dans une application de charger un fichier xml depuis un site.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	 URL url = new URL("http://api.androidhive.info/music/music.xml");
    		        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    		        DocumentBuilder db = dbf.newDocumentBuilder();
    		        InputStream in = url.openStream() ;
    		       Document doc = db.parse(new InputSource(url.openStream()));
     
    		        doc.getDocumentElement().normalize(); ...
    Je travaille avec la version 2.2 d'android.

    Mais lorsque je lance mon application je n'arrive pas à me connecter au site.

    Il semble que sa soit le url.openStream() qui pose problème.

    Avez-vous une solution? Merci d'avance

  2. #2
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    As tu un rapport d'erreur dans ton logcat ? Pourrais tu nous le poster?

    Merci

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InputStream in = url.openStream() ;
    Document doc = db.parse(new InputSource(url.openStream()));
    devrait être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    InputStream in = url.openStream() ;
    Document doc = db.parse(new InputSource(in));

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2013
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 35
    Par défaut
    Tous d'abord merci de vos réponses.

    Oui il est vrai que cela irait mieux avec ton bous de code nicroman.

    Cela dit, rien ne change, j'ai toujours le même problème à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     InputStream in = url.openStream() ;
    Non Feanorin je n'ai pas d'apport d'erreur dans mon logcat.

    J'ai test le code dans un try catch de ma méthode onCreate de mon activty

    Voici mon code:
    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
    	setContentView(R.layout.main);
     
    		try {
     
    			 URL url = new URL("http://api.androidhive.info/music/music.xml");
    		        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    		        DocumentBuilder db = dbf.newDocumentBuilder();
    		        Toast.makeText(this, "1", Toast.LENGTH_LONG).show();
    		        InputStream in = url.openStream() ;
    		        Toast.makeText(this, "2", Toast.LENGTH_LONG).show();
    		       Document doc = db.parse(new InputSource(in));
    		       Toast.makeText(this, "3", Toast.LENGTH_LONG).show();
     
    		        doc.getDocumentElement().normalize();
     
    			} catch (Exception e) {
    			System.out.println("XML Pasing Excpetion = " + e);
    			}
    Seulement la valeur 1 s'affiche à l'écran

  5. #5
    Expert confirmé

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Par défaut
    Bonjour,

    Non Feanorin je n'ai pas d'apport d'erreur dans mon logcat.
    Donc pas d'exception déjà, on peut enlever de tête l'appel dans le thread Ui et la permission, donc, est ce que tu pourrais nous dire ce que tu as dans la variable in (sa taille et est ce que les donnée présentes sont cohérentes avec ton xml, compare les deux tailles)?

    Car sans information c'est compliqué de t'aider...

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Ceci dit... pas sur qu'il n'y ai pas d'exception:
    Avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println("XML Pasing Excpetion = " + e);
    pas facile de détecter les exceptions....
    Remplacer par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.e("TAG","XML parsing errror",e);
    Au moins, ca ira dans le logcat si il y a une exception.

    Ensuite... vu qu'il y a un appel Internet (url.openStream()), j'imagine que le code tourne dans un thread (au moins une AsyncTask), dans ce cas, pas sur que les "Toast" fonctionne très bien... Préférer un simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Log.d("TAG","Been here... done that...");
    A chaque fois que nécessaire.


    Pour finir, on ne sait même pas quel est le problème initial...
    Le document est vide ? L'InputStream est null ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrer le contenu XML depuis site web
    Par h2qutc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2014, 13h07
  2. chargement images depuis un site
    Par Gob59 dans le forum Android
    Réponses: 3
    Dernier message: 30/04/2013, 17h35
  3. Chargement DataGrid depuis XML
    Par urubs dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 25/10/2011, 19h50
  4. [AJAX/XML/JAVA] Afficher un flux de données depuis un site web
    Par chodaboy34 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/10/2006, 16h38
  5. Recupération de données XML depuis une URL
    Par tonymo dans le forum Format d'échange (XML, JSON...)
    Réponses: 27
    Dernier message: 21/11/2005, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo