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 :

Android et XML


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Android et XML
    Bonsoir,

    J'ai un projet android a faire sur tablette.
    J’exécute des tests sur le parsage du XML et des intents (switch entre page).

    J'ai récupéré un tuto sur le parsage XML avec des flux RSS et son projet marche (heureusement ), bref je refais un projet et je code ligne par ligne son tuto en suivant les déclarations pour comprendre et le réadapter au mien car moi c'est pas un flux RSS que je dois parser et ça marche pas (dommage bien essayé ).

    J'ai l'impression que cela vient de ma déclaration array listclient que j'initialise a null mais je suis pas sur ???

    Je laisse mon projet en pièce jointe pour que l'on comprenne mieux mon problème, plus explicite que d'écrire le code a la nique ici je pense .

    Voila j’espère que l'on pourra repérer mon erreur car je l'a voit pas

    Je vous remercie d'avance
    Je précise que je pars du boulot donc je ne repondrai pas avant 18h40
    Fichiers attachés Fichiers attachés

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Rebonjour,

    Après un debug plus complet aujourd'hui, je me recompte que l'erreur vient de mon parserXMLHandler.

    Il rentre dans le constructeur avec super(); et normalement il devrait continuer pour faire le traitement avec startdocument et insérer les cilents mais il zappe ce code et je ne comprend pas pourquoi ?

    Une ame charitable pour m'aider pls .

  3. #3
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Peux tu juste poster cette partie de code (parserXMLHandler) ainsi que son appel ?

    Merci
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    OK

    Voici le parserXmlHandler:

    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
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    package com.testandroid;
     
    import java.util.ArrayList;
     
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    public class ParserXMLHandler extends DefaultHandler 
    {
    	// Nom des tags XML
    	private final String T_CLIENT = "t_client";
    	private final String IDCLI = "idCli";
    	private final String NOMCLI = "nomCli";
    	private final String PRENOMCLI = "prenomCli";
     
    	// Arraylist Client
    	private ArrayList<ListClient> listClient;
     
    	//Boolean permettant de savoir si à l'interieur d'un client
    	private boolean inClient;
     
    	// Client courante
    	private ListClient currentClient;
     
    	// Buffer contenant données d'un tag XML
    	private StringBuffer buffer;
     
    	@Override
    	public void processingInstruction(String target, String data) throws SAXException 
    	{		
    		super.processingInstruction(target, data);
    	}
     
    	public ParserXMLHandler() 
    	{
    		super();		
    	}
     
    	// évenement permettant d'initialiser tout avant le début du parcours du document XML
    	@Override
    	public void startDocument() throws SAXException 
    	{
    		super.startDocument();
    		listClient = new ArrayList<ListClient>();
     
    	}
     
     
    	// Fonction étant déclenchée lorsque le parser trouve un tag XML
    	// C'est cette méthode que nous allons utiliser pour instancier un nouveau feed
    	@Override
    	public void startElement(String uri, String localName, String name,	Attributes attributes) throws SAXException 
    	{
    		// Réinitialise le buffer a chaque fois qu'il rencontre un item
    		buffer = new StringBuffer();
     
    		// localName contient le nom du tag rencontré
     
    		// Rencontre un tag T_CLIENT, Instanciation d'un nouveau client
    		if (localName.equalsIgnoreCase(T_CLIENT))
    		{			
    			this.currentClient = new ListClient();
    			inClient = true;
    		}
     
    		// Définir des actions à effectuer pour chaque T_CLIENT rencontré (Si l'on veut !!!)
    		if (localName.equalsIgnoreCase(IDCLI))
    		{
    			// Nothing to do	
    		}
    		if (localName.equalsIgnoreCase(NOMCLI))
    		{
    			// Nothing to do	
    		}
    		if (localName.equalsIgnoreCase(PRENOMCLI))
    		{	
    			// Nothing to do	
    		}
     
    	}
     
    	@Override
    	public void endElement(String uri, String localName, String name) throws SAXException 
    	{		
     
    		if (localName.equalsIgnoreCase(IDCLI))
    		{
    			if(inClient){				
    				// Les caractères sont dans l'objet buffer
    				this.currentClient.setIdCli(buffer.capacity());				
    				buffer = null;
    			}
    		}
    		if (localName.equalsIgnoreCase(NOMCLI))
    		{
    			if(inClient){				
    				this.currentClient.setNomCli(buffer.toString());				
    				buffer = null;
    			}
    		}
    		if (localName.equalsIgnoreCase(PRENOMCLI))
    		{	
    			if(inClient){				
    				this.currentClient.setPrenomCli(buffer.toString());				
    				buffer = null;
    			}
    		}
    		if (localName.equalsIgnoreCase(T_CLIENT))
    		{		
    			listClient.add(currentClient);
    			inClient = false;
    		}
    	}
     
     
    	public void characters(char[] ch,int start, int length)	throws SAXException
    	{		
    		String lecture = new String(ch,start,length);
    		if(buffer != null) buffer.append(lecture);      		
    	}
     
     
    	// cette méthode nous permettra de récupérer les données
    	public ArrayList<ListClient> getData()
    	{
    		return listClient;
    	}
     
    }


    et l'appel:

    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
     
    // handler => gestonnaire du fichier XMl (opérations de parsing)
    		DefaultHandler handler = new ParserXMLHandler();
    		try 
    		{
    			// On parse le fichier XML
    			parseur.parse(XMLFile, handler);
     
    			// On récupère directement la liste des clients
    			listClient = ((ParserXMLHandler) handler).getData();
    		}
    		catch (SAXException e) 
    		{
    			e.printStackTrace();
    		} 
    		catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
    Juste pour indication debug + point d'arret, il va jusqu'au constructeur de parserXMLHandler et il ne continue pas je pige pas pourquoi ?

    Merci de m'accorder du temps

  5. #5
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Hello

    je pense avoir le même problème que toi moi le parseur.parse renvois un nullpointerException

    Tu as suivi le tuto de cette page: http://thibault-koprowski.fr/2010/10...-sous-android/ ?

    Merci d'avance à vous

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Oui c'est bien ce tuto et aussi celui de ce site

  7. #7
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Salut,

    J'ai l'impression que l'erreur peut venir de ton fichier androidManifest ...

    As tu bien déclaré toutes tes activity à l'intérieur ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Nous sommes bien d'accord qu'une vue = une activity ?

    J'ai déclaré 2 activitys dans mon androidmanifest vu que j'ai deux vues donc je pense ne pas avoir d'erreur a ce niveau.

    J'ai activityclient et Activitymain
    et voici mon manifest:

    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
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.testandroid"
        android:versionCode="1"
        android:versionName="1.0" >
     
        <uses-sdk android:minSdkVersion="10" />
     
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:label="@string/app_name"
                android:name=".ActivityMain" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />
     
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity 
                android:label="@string/app_name" 
                android:name=".ActivityClient">
            </activity>
     
        </application>
     
    </manifest>

  9. #9
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Oui ca à l'air bon ...



    PS: Attention à bien utiliser les balises CODE! C'est la 2ème fois que je corrige

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ok je le ferais a l'avenir sorry

  11. #11
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Ok je le ferais a l'avenir sorry
    .

    Bon sinon cela peut aussi provenir de ton fichier xml regarde s'il est correct ( existe , pas d'erreur,..).

    Puisque ce code a l'air de marcher avec le tuto et que n'as modifié que la class entries , c'est ça ? alors peut être que le problème vient du fichier.

    De plus ton code à l'air cohérent .

    Essaye de regarder si tu n'as pas d'exception (SaxException et Exception ) ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Si j'ai une exception ici:

    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
    		// handler => gestonnaire du fichier XMl (opérations de parsing)
    		DefaultHandler handler = new ParserXMLHandler();
    		try 
    		{
    			// On parse le fichier XML
    			parseur.parse(XMLFile, handler);
     
    			// On récupère directement la liste des clients
    			listClient = ((ParserXMLHandler) handler).getData();
    		}
    		catch (SAXException e) 
    		{
    			e.printStackTrace();
    		} 
    		catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
    Je pense que l'exception est du au fait que ma listclient est vide, elle est égale a null plus précisement cette exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
    et j'arrive pas a savoir pourquoi ma listclient ne se rempli pas

  13. #13
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    Pour ma part je n'est qu'une seule activity...

    @Yukimura3.1 : tu es sur que ton erreur ne vient pas de la ligne juste avant comme moi? dans le parseur.parse(...) ?


    PS : voilà mon flux xml pour info --> http://trafiroutes.wallonie.be/trafi...nements_FR.rss

  14. #14
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    Je pense que l'exception est du au fait que ma listclient est vide, elle est égale a null plus précisement cette exception:
    .

    Qu'est ce que tu as dans le logcat ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  15. #15
    Membre à l'essai
    Homme Profil pro
    Flex + Flex mobile + Android
    Inscrit en
    Février 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Flex + Flex mobile + Android

    Informations forums :
    Inscription : Février 2007
    Messages : 29
    Points : 22
    Points
    22
    Par défaut
    12-16 17:15:58.902: E/AndroidRuntime(328): FATAL EXCEPTION: main
    12-16 17:15:58.902: E/AndroidRuntime(328): java.lang.NullPointerException
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.geoffrey.utils.ParserXMLHandler.endElement(ParserXMLHandler.java:68)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatParser.endElement(ExpatParser.java:158)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatParser.appendBytes(Native Method)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatParser.parseFragment(ExpatParser.java:518)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatParser.parseDocument(ExpatParser.java:479)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:318)
    12-16 17:15:58.902: E/AndroidRuntime(328): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:275)
    12-16 17:15:58.902: E/AndroidRuntime(328): at javax.xml.parsers.SAXParser.parse(SAXParser.java:390)
    12-16 17:15:58.902: E/AndroidRuntime(328): at javax.xml.parsers.SAXParser.parse(SAXParser.java:187)
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.geoffrey.utils.Data.getFeeds(Data.java:53)
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.geoffrey.infotraffic.InfoTrafficActivity.GetFeed(InfoTrafficActivity.java:89)
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.geoffrey.infotraffic.InfoTrafficActivity.onClick(InfoTrafficActivity.java:37)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.view.View.performClick(View.java:2485)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.view.View$PerformClick.run(View.java:9080)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.os.Handler.handleCallback(Handler.java:587)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.os.Handler.dispatchMessage(Handler.java:92)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.os.Looper.loop(Looper.java:123)
    12-16 17:15:58.902: E/AndroidRuntime(328): at android.app.ActivityThread.main(ActivityThread.java:3683)
    12-16 17:15:58.902: E/AndroidRuntime(328): at java.lang.reflect.Method.invokeNative(Native Method)
    12-16 17:15:58.902: E/AndroidRuntime(328): at java.lang.reflect.Method.invoke(Method.java:507)
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    12-16 17:15:58.902: E/AndroidRuntime(328): at dalvik.system.NativeStart.main(Native Method)
    Pour info ton handler : DefaultHandler handler = new ParserXMLHandler();
    Tu peux tout de suite lui mettre ParserXMLHandler handler = new ParserXMLHandler();
    Comme ça dans les lignes en dessous tu ne doit pas le caster en ParserXMLHandler


    PS je viens de trouver mon erreur il y a inItem qui est à NULL dans le HANDLER

  16. #16
    Expert éminent

    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
    Points : 9 149
    Points
    9 149
    Par défaut
    12-16 17:15:58.902: E/AndroidRuntime(328): java.lang.NullPointerException
    12-16 17:15:58.902: E/AndroidRuntime(328): at com.geoffrey.utils.ParserXMLHandler.endElement(ParserXMLHandler.java:68)
    PS je viens de trouver mon erreur il y a inItem qui est à NULL dans le HANDLER
    C'est pour cela que le logcat est utile

    Edit
    Je pense que l'exception est du au fait que ma listclient est vide, elle est égale a null plus précisement cette exception:

    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5

    catch (IOException e)
    {
    e.printStackTrace();
    }
    et j'arrive pas a savoir pourquoi ma listclient ne se rempli pas
    Les exceptions IOException :

    Signals a general, I/O-related error. Error details may be specified when calling the constructor, as usual. Note there are also several subclasses of this class for more specific error situations, such as FileNotFoundException or EOFException.
    Comme quoi ça bien l'air de venir de ton fichier xml ^^.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ok donc je vais donner le fichier XML ou sont stockées les données:

    le fichier est dans le dossier assets/.

    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
     
    <?xml version="1.0" encoding="utf-8" ?>
    <!--
    -
    - phpMyAdmin XML Dump
    - version 3.2.0.1
    - http://www.phpmyadmin.net
    -
    - Serveur: localhost
    - Généré le : Ven 02 Décembre 2011 à 10:00
    - Version du serveur: 5.1.36
    - Version de PHP: 5.3.0
    -->
     
    <!--
    - Base de données: 'testandroid'
    -->
    <testandroid>
      <!-- Table t_client -->
        <t_client>
            <idCli>1</idCli>
            <nomCli>Payel</nomCli>
            <prenomCli>David</prenomCli>
            <villeCli>Oissel</villeCli>
            <adrCli>Résidence saint julien </adrCli>
            <cpCli>76350</cpCli>
        </t_client>
        <t_client>
            <idCli>2</idCli>
            <nomCli>toto</nomCli>
            <prenomCli>titi</prenomCli>
            <villeCli>Mantes la jolie</villeCli>
            <adrCli>14 rue jean paul </adrCli>
            <cpCli>78200</cpCli>
        </t_client>
      <!-- Table t_refs_c -->
        <t_refs_c>
            <idCli>1</idCli>
            <idSpe>3</idSpe>
        </t_refs_c>
        <t_refs_c>
            <idCli>2</idCli>
            <idSpe>5</idSpe>
        </t_refs_c>
        <t_refs_c>
            <idCli>1</idCli>
            <idSpe>4</idSpe>
        </t_refs_c>
        <t_refs_c>
            <idCli>2</idCli>
            <idSpe>2</idSpe>
        </t_refs_c>
      <!-- Table t_specialite -->
        <t_specialite>
            <idSpe>3</idSpe>
            <nomSpe>medecin</nomSpe>
        </t_specialite>
        <t_specialite>
            <idSpe>4</idSpe>
            <nomSpe>dentiste</nomSpe>
        </t_specialite>
        <t_specialite>
            <idSpe>5</idSpe>
            <nomSpe>chirugien</nomSpe>
        </t_specialite>
    </testandroid>

    et voici l'appel qui doit être surement faux du coup ^^:

    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
     
    package com.testandroid;
     
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
     
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
     
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
    import android.content.Context;
     
     
    public class containerData 
    {
    	static public Context context;
     
    	// Constructeur
    	public containerData()
    	{
     
    	}
     
    	public static ArrayList<ListClient> getFeeds()
    	{
    		// On passe par une classe factory pour obtenir une instance de sax
    		SAXParserFactory InstSAX = SAXParserFactory.newInstance();
    		SAXParser parseur = null;
    		ArrayList<ListClient> listClient = null;
     
    		// Instance de SAXParser
    		try
    		{
    			parseur = InstSAX.newSAXParser();
    		}
    		catch (ParserConfigurationException e)
    		{
    			e.printStackTrace();
    		}
    		catch (SAXException e)
    		{
    			e.printStackTrace();
    		}
     
    		// Fichier UML
    		File XMLFile = null;
    		try
    		{
    			File XML = new File("assets/testandroid.xml");
    			XMLFile = XML;
    		}
    		catch (Exception e1) 
    		{
    			e1.printStackTrace();
    		}
     
    		// handler => gestonnaire du fichier XMl (opérations de parsing)
    		ParserXMLHandler handler = new ParserXMLHandler();
    		try 
    		{
    			// On parse le fichier XML
    			parseur.parse(XMLFile, handler);
     
    			// On récupère directement la liste des clients
    			listClient = handler.getData();
    		}
    		catch (SAXException e) 
    		{
    			e.printStackTrace();
    		} 
    		catch (IOException e) 
    		{
    			e.printStackTrace();
    		}
     
    		// Retourne l'array list
    		return listClient;
    	}
     
    }
    Merci de votre aide .

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Toujours pas résolu mon problème j'ai pas trop eu le temps de bosser de dessus ce week

    J'ai bien vérifié mon fichier xml mis plus haut mais je vois pas en quoi il y a un problème ?????

  19. #19
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    T'as essayé de mettre des traces dans le parser (genre tester les arguments) ?

    Perso, j'inverserai la logique histoire d'éviter qu'un null fasse tout planter.

    ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (localName.equalsIgnoreCase(IDCLI))
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (IDCLI.equalsIgnoreCase(localName))

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    J'ai changé ce que tu m'as dit et ça change rien.
    En même temps, ça ne n'étonne pas vu que mon erreur est tout simplement qu'il n'arrive pas a ouvrir mon fichier voila mon message: "Coudn't open file:///assets/testandroid.xml".

    Je ne comprend pas pourquoi ?????

Discussions similaires

  1. Développement Android java xml
    Par Guerchi dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/01/2014, 12h07
  2. Problème XML DOM Java > Android
    Par frAydjwe dans le forum Android
    Réponses: 2
    Dernier message: 13/03/2012, 15h40
  3. Parser String xml Android
    Par tlili_info dans le forum Android
    Réponses: 1
    Dernier message: 17/05/2011, 10h18
  4. XML et Android
    Par cadeau10 dans le forum Android
    Réponses: 8
    Dernier message: 09/05/2011, 14h02
  5. Parser un XML sous Android - Il rate des lignes ?
    Par rXpCH dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 28/05/2010, 13h26

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