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 :

Le parseur SAX et la méthode characters


Sujet :

Android

  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 231
    Par défaut Le parseur SAX et la méthode characters
    Bonjour,

    J'utilise le parser SAX pour parser un fichier XML et maintenant je bloque un peu car je n'ai pas bien compris où la méthode characters est appelée dans le programme.

    J'ai cherché dans tous les coins et j'ai rien trouvé.

    Je crois que l'appel de cette méthode s'effectue explicitement.

    Voici le lien du tutoriel auquel je fais référence : http://thibault-koprowski.fr/2010/10...-sous-android/

    Quelqu'un saurait-il m'expliquer comment ça fonctionne ?

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    il me semble que la méthode est exécutée quand le parseur rencontre un noeud texte, ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <tag>texte</tag>
     
    <tag> -> startElement()
    texte -> characters()
    </tag> -> endElement()

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par cool Voir le message
    J'utilise le parser SAX pour parser un fichier XML et maintenant je bloque un peu car je n'ai pas bien compris où la méthode characters est appelée dans le programme.

    J'ai cherché dans tous les coins et j'ai rien trouvé.

    Je crois que l'appel de cette méthode s'effectue explicitement.
    C'est comme startElement(), endElement() et tous les autres callbacks de ContentHandler.
    C'est parser.parse() qui les appelle quand il trouve les contenus correspondants.

    Je trouve que ce tutoriel va un peu vite en besogne quand on y connaît rien et qu'on a pas entendu parler "d'approche évènementielle". Regarder plutôt les tutoriels SAX de developpez.com, et sa FAQ : http://java.developpez.com/faq/xml/?page=sax
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 231
    Par défaut
    merci pour vos réponses
    Maintenant ça s'éclaircit un peu.
    Une dernière question : qui passe les paramètres à la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void characters(char[] ch,int start, int length)

  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,

    Une dernière question : qui passe les paramètres à la méthode :
    Si tu veux savoir qui appelle cette fonction , ben c'est ton parser , qui utilises ton Handler, enfin la classe DefaultHandler dont ton handler dervait hériter et qui comporte cette fonction .

    Après pour le descriptif de cette fonction
    Dans le lien donnée précédment :
    characters

    Tout ce qui est dans l'arborescence mais n'est pas partie intégrante d'un tag, déclenche la levée de cet événement. En général, cet événement est donc levé tout simplement par la présence de texte entre la balise d'ouverture et la balise de fermeture comme dans l'exemple suivant:

    <maBalise>un peu de texte</maBalise>

    La présence de "un peu de texte" provoque la levée de l'événement characters. Attention : il est à noter que l'API SAX n'impose rien quant à pas l'implémentation de cet événement. Dans le cas d'un texte épars autour de balises filles de la balise en cours, les réactions peuvent être diverses. Ainsi le flux xml suivant :

    <maBalise>un peu
    <baliseImbriquee nom="coucou"/> de texte<baliseImbriquee nom="toto"/>éparpillé
    </maBalise>
    Il peut soit donner lieu à trois événements contenant respectivement le texte "un peu", " de texte", "éparpillé" soit donner un seul événement contenant l'intégralité du texte à savoir "un peu de texte éparpillé". Comme l'API ne fixe rien, ce sera à vous de penser au fait que le parser que vous avez sous la main ne sera peut être pas celui de vos clients et d'agir en conséquence, c'est à dire en gérant les deux types de réactions possibles de telle sorte qu'elles fournissent le même comportement final dans les deux cas.

    Si tu veux réellement savoir comment ça marche
    http://developer.android.com/referen...SAXParser.html

  6. #6
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    231
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 231
    Par défaut
    merci pour vos réponses.

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

Discussions similaires

  1. [SAX] Lecture d'un CDATA par la méthode characters
    Par Doc.Fusion dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/03/2010, 16h29
  2. parser un fichier xml avec xml.sax et la méthode "feed"
    Par louisonb dans le forum Général Python
    Réponses: 1
    Dernier message: 06/04/2009, 11h41
  3. [SAX] Problème de Parseur SAX
    Par Link81 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 27/02/2009, 11h18
  4. problème avec le parseur SAX
    Par xblond dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 06/06/2006, 10h22

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