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 :

problème de parsage


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut problème de parsage
    bonjour tout le monde

    je veux parser un simple document xml

    document xml: test.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0"?>
     
     
    <liens>
     
    <video>rtsp://10.0.2.2/fichierTest.sdp</video>
     
     
    <slides>http://10.0.2.2/imageTest.jpg</slides>
     
     
    </liens>
    l'activité:
    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
    package org.anddev.android.parsingxml;
     
    import java.net.URL;
     
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
     
    import org.xml.sax.InputSource;
    import org.xml.sax.XMLReader;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.widget.TextView;
     
    public class ParsingXML extends Activity {
     
         private final String MY_DEBUG_TAG = "WeatherForcaster";
     
         /** Called when the activity is first created. */
         @Override
         public void onCreate(Bundle icicle) {
              super.onCreate(icicle);
     
              /* Create a new TextView to display the parsingresult later. */
              TextView tv = new TextView(this);
              try {
                   /* Create a URL we want to load some xml-data from. */
                   URL url = new URL("http://10.0.2.2/test.xml");
     
                   /* Get a SAXParser from the SAXPArserFactory. */
                   SAXParserFactory spf = SAXParserFactory.newInstance();
                   SAXParser sp = spf.newSAXParser();
     
                   /* Get the XMLReader of the SAXParser we created. */
                   XMLReader xr = sp.getXMLReader();
                   /* Create a new ContentHandler and apply it to the XML-Reader*/
                   ExampleHandler myExampleHandler = new ExampleHandler();
                   xr.setContentHandler(myExampleHandler);
     
                   /* Parse the xml-data from our URL. */
                   xr.parse(new InputSource(url.openStream()));
                   /* Parsing has finished. */
     
                   /* Our ExampleHandler now provides the parsed data to us. */
                   ParsedExampleDataSet parsedExampleDataSet = myExampleHandler.getParsedData();
     
                   /* Set the result to be displayed in our GUI. */
                   tv.setText(parsedExampleDataSet.toString());
     
              } catch (Exception e) {
                   /* Display any Error to the GUI. */
                   tv.setText("Error: " + e.getMessage());
                   Log.e(MY_DEBUG_TAG, "WeatherQueryError", e);
              }
              /* Display the TextView. */
              this.setContentView(tv);
         }
    }
    le gestionnaire:
    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
    package org.anddev.android.parsingxml;
     
     
     
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
     
     
     
     
    public class ExampleHandler extends DefaultHandler{
     
         // ===========================================================
         // Fields
         // ===========================================================
     
         private boolean in_liens = false;
         private boolean in_video = false;
         private boolean in_slides = false;
     
     
     
     
     
     
         private ParsedExampleDataSet myParsedExampleDataSet = new ParsedExampleDataSet();
     
         // ===========================================================
         // Getter & Setter
         // ===========================================================
     
         public ParsedExampleDataSet getParsedData() {
              return this.myParsedExampleDataSet;
         }
     
         // ===========================================================
         // Methods
         // ===========================================================
         @Override
         public void startDocument() throws SAXException {
              this.myParsedExampleDataSet = new ParsedExampleDataSet();
         }
     
         @Override
         public void endDocument() throws SAXException {
              // Nothing to do
         }
     
     
         /** Gets be called on opening tags like:
          * <tag>
          * Can provide attribute(s), when xml was like:
          * <tag attribute="attributeValue">*/
         @Override
         public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException {
     
        	 if (localName.equals("liens")) {
                   this.in_liens = true;
     
              }else if (localName.equals("video")) {
                   this.in_video = true;
     
              }else if (localName.equals("slides")) {
                   this.in_slides = true;
              }
     
         }
     
         /** Gets be called on closing tags like:
          * </tag> */
         @Override
         public void endElement(String namespaceURI, String localName, String qName) throws SAXException {
              if (localName.equals("liens")) {
                   this.in_liens = false;
     
              }else if (localName.equals("video")) {
     
     
                   this.in_video = false;
     
              }else if (localName.equals("slides")) {
     
                   this.in_slides = false;
     
              }
     
         }
     
         /** Gets be called on the following structure:
          * <tag>characters</tag> */
         @Override
        public void characters(char ch[], int start, int length) {
     
        	 if(this.in_video){
                 myParsedExampleDataSet.setVideo(new String(ch, start, length));
                 }
                 if(this.in_slides){
                 myParsedExampleDataSet.setSlides(new String(ch, start, length));
                 }  
     
     
     
     
        }
    }
    le retour du parseur:
    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
    package org.anddev.android.parsingxml;
     
    public class ParsedExampleDataSet {
     
     
    	private String video, slides;
     
     
    	 public String getVideo(){return video;}
    	 public String getSlides() {return slides;}
     
    	 public void setVideo(String video){this.video=video;}
    	 public void setSlides(String slides){this.slides=slides;}
     
    	  public String toString(){
    		  return "video = "+this.video + "\n slides = "+ this.slides;
    	  }
     
    }
    le résultat affiché
    le log:
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): WeatherQueryError
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): java.io.FileNotFoundException: http://10.0.2.2/test.xml
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at org.apache.harmony.luni.internal.net.http://www.protocol.http.HttpURLConn...tion.java:1061)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at java.net.URL.openStream(URL.java:653)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at org.anddev.android.parsingxml.ParsingXML.onCreate(ParsingXML.java:42)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.os.Handler.dispatchMessage(Handler.java:99)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.os.Looper.loop(Looper.java:123)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at android.app.ActivityThread.main(ActivityThread.java:4363)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at java.lang.reflect.Method.invokeNative(Native Method)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at java.lang.reflect.Method.invoke(Method.java:521)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): at dalvik.system.NativeStart.main(Native Met
    je mentionne que l'erreur est à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xr.parse(new InputSource(url.openStream()));
    de la classe ParsingXML

    merci d'avance pour tout aide

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,
    je pense que le problème vient de là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    04-23 09:54:54.062: ERROR/WeatherForcaster(357): java.io.FileNotFoundException: http://10.0.2.2/test.xml
    Donc ton programme ne peut pas trouver ton fichier. Plusieurs raisons :
    - le fichier n'existe réellement pas
    - le serveur est injoignable car il y a un problème de réseau (mal configuré par exemple, ou pas configuré).
    - problème de droit d'accès à ton serveur ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    le test se fait en localhost avec un serveur apache
    le serveur fonctionne tres bien: il m'affiche it works
    pas d'erreur de code..en fait j'ai suivi un tutorial


    par contre quand j'insere l'url http://localhost/test.xml il m'affiche:
    Forbidden

    You don't have permission to access /test.xml on this server.
    peu etre parce que je dois l'afficher en sudo ( je suis sur ubuntu)
    je sais pas si cette histoire entre dans mon probleme ou je dis n'importe quoi

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    C'est pas vraiment claire, il est où ton serveur ? sur ton téléphone ? sur un pc distant ?

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2008
    Messages : 233
    Par défaut
    oui le serveur sur mon pc, je suis entrain de faire le test en local

  6. #6
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Et via le navigateur de ton téléphone, tu arrives à afficher une des pages de ton serveur ?

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

Discussions similaires

  1. [MySQL] Problème de parsage d'un fichier xml de 12 Go
    Par totoAussi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/08/2011, 00h40
  2. Problème de parsage en Json
    Par Flow_75 dans le forum Android
    Réponses: 4
    Dernier message: 26/06/2011, 19h17
  3. Problème de parsage dans un "parsage"
    Par stansoad0108 dans le forum Langage
    Réponses: 3
    Dernier message: 22/04/2008, 10h17
  4. Problème de parsage
    Par stansoad0108 dans le forum Modules
    Réponses: 8
    Dernier message: 31/03/2008, 10h08
  5. Réponses: 3
    Dernier message: 07/06/2007, 13h22

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