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

Format d'échange (XML, JSON...) Java Discussion :

Comment recuperer un paramètre du fichier XML?


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Par défaut Comment recuperer un paramètre du fichier XML?
    Bonjour,

    J'utilise SAX pour lire un fichier XML. Je le fais assez bien. Voici le 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
    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
     
     
    import org.xml.sax.*;
    import org.xml.sax.helpers.DefaultHandler;
    import javax.xml.parsers.SAXParserFactory;
    import javax.xml.parsers.SAXParser;
    import java.io.*;
     
    public class AnalyseSAX extends DefaultHandler {
      public static void main (String args[]) throws IOException {
          //Si l'utilisateur a oublié de passer
          //le nom du fichier XML en parametre => erreur
          if (args.length != 1) {
              System.err.println("Usage: AnalyseSAX fichierSourceXML");
              System.exit (1);
          }
          //on lance l'analyseur avec le fichier XML en parametre
          DefaultHandler handler = new AnalyseSAX();
          SAXParserFactory factory = SAXParserFactory.newInstance();
          try {
              SAXParser saxParser = factory.newSAXParser();
              saxParser.parse( new File(args[0]), handler );
          } catch (Throwable t) {
              //Si on a une erreur pendant l'analyse
              t.printStackTrace ();
              System.exit (1);
          }
          System.exit (0);
      }
     
     
      public void error(SAXParseException e) throws SAXParseException{
          throw e;
      }
     
      public void startDocument () throws SAXException {
          System.out.println("début du document");
      }
     
      public void endDocument () throws SAXException {
          System.out.println("fin du document");
      }
     
      public void startElement (String namespaceURI,String simpleName,String qualifiedName,Attributes attrs) throws SAXException {
          String nomElement = simpleName;
          if (nomElement.equals("")) nomElement = qualifiedName;
     
          System.out.println("startElement : "+ nomElement);
      }
     
      public void endElement (String namespaceURI,String simpleName,String qualifiedName) throws SAXException {
          String nomElement = simpleName;
          if (nomElement.equals("")){
              nomElement = qualifiedName;
          }
          System.out.println("endElement : "+ nomElement);
      }
     
      public void characters (char buf [], int offset, int len)
          throws SAXException {
          String s = new String(buf, offset,len);
          System.out.println (s);
      }
     
     
    }
    J'affiche tous les éléments de mon fichier XML. Comment à partir d'une autre classe récuperer la valeur d'un élément? Si je ne cherche à récupérer que la ville?
    Mon fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="UTF-8"?>
    <personne>
    <nom>Dupond</nom>
    <adresse>
    <numero>3</numero>
    <rue>rue de la paix</rue>
    <ville>Paris</ville>
    <codePostal>75001</codePostal>
    </adresse>
    </personne>
    erci
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Avec SAX tu vas devoir parcourir tes éléments en regardant la succession des "évènements" du document (ouverture/fermeture de balises, etc.)

    Lorsque tu trouves la balise qui t'intéresse ("ville"), tu effectues un traitement particulier (extraction de la valeur pour la mémoriser dans une variable).

    Si tu utilises DOM, tu auras directement accès à la ville. En contrepartie, le parsing "DOM" est plus gourmand en mémoire (pour reconstruire ton XML sous la forme d'un "arbre" en java).
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2003
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 88
    Par défaut
    Bonjour,

    Je me trouve dans la même problématique quepracede2005 : Je ne sais pas comment faire pour que mon parseur (dans son cas AnalyseSAX) retourne au programme appelant les valeurs du fichier XML.

    Je sais les lire et les afficher à l’écran, mais je souhaiterais faire un traitement dans mon start element qui rangera les valeurs dans un tableau afin de les renvoyer au programme appelant, mais je n’y arrive pas…

Discussions similaires

  1. Réponses: 10
    Dernier message: 27/07/2006, 14h09
  2. Réponses: 3
    Dernier message: 20/05/2006, 20h42
  3. [XSLT] Récupérer le nom du fichier XML
    Par silverspike dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/04/2006, 14h01
  4. Réponses: 4
    Dernier message: 28/10/2005, 09h59
  5. [SimpleXML] Comment faire pour transformer un fichier XML en PHP ?
    Par magic8392 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/09/2005, 16h22

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