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 :

Trouver une balise avec JDOM


Sujet :

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

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Trouver une balise avec JDOM
    Bonjour à tous,

    J'aimerais à partir d'un fichier XML quelconque, trouver l'occurence d'une balise XML dans ce fichier si elle existe.

    Après m'être renseigné avec des tutoriels et docs, je me pose la question sur la manière de faire. Faut-il : écrire un algorithme de parcours et traiter chaque balise les unes après les autres, ou bien utiliser un filtre(ce que je n'ai pas bien saisi) ou encore, existe-t-il des méthodes issues de JDOM pour accéder directement à certaine balise.
    Pour ma part j'étais parti sur la solution de parcourir tous le fichier xml mais je ne m'en sors pas

    Quelle serait la meilleure démarche selon vous?
    Merci beaucoup

  2. #2
    Membre averti
    Inscrit en
    Janvier 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 257
    Points : 308
    Points
    308
    Par défaut
    Salut,

    Pour ma part j'utilise le parser XML sax dont voici un exemple d'implementation :

    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
     
    	// recuperation des balises cc et to du fichier xml de automatcrl
    	public void getXml() {
    		try {
    			SAX SAXHandler = new SAX();
    			SAXParser parser = (SAXParserFactory.newInstance()).newSAXParser();
    			File fichier = new File(repCrl+ "\\automatcrl.xml");
    			parser.parse(fichier, SAXHandler);
    		} catch (Exception ex) {
    			System.out.println("Erreur dans le fichier xml");
    			System.err.println(ex);
    			System.exit(10);
    		}
     
    	}
     
    	// class handler du fichier xml
    	// reaction en fonction des balises
    	public class SAX extends DefaultHandler {
    		// savoir si on est dans une balise precise pour la lecture des data
    		// ici on recupere la valeure des balise to et cc
    		boolean into;
     
    		boolean incc;
     
    		public void startElement(String uri, String localName, String rawName,
    				Attributes attributes) {
    			if (rawName.equals("to")) {
    				into = true;
     
    			} else if (rawName.equals("cc")) {
    				incc = true;
     
    			} else if (rawName.equals("mail")) {
    				try {
    					servMail=attributes.getValue("server");
    				}catch (Exception e) {
    					System.err.println("Probleme serveur de mail");
    				}
    			}
    		}
     
    		public void endElement(String uri, String localName, String rawName) {
    			if (rawName.equals("to")) {
    				into = false;
    			} else if (rawName.equals("cc")) {
    				incc = false;
     
    			}
     
    		}
     
    		public void characters(char[] ch, int start, int length)
    				throws SAXException {
    			String lecture = new String(ch, start, length);
    			if (into) {
    				mailCrlTo=lecture;
    			} else if (incc) {
    				mailCrlCc=lecture;
    			}
    		}
     
    		public void startDocument() {
    			//System.out.println("Début du parsing");
    		}
     
    		public void endDocument() {
    			//System.out.println("Fin du parsing");
    		}
    	}
    Après tu est libre de faire comme tu le souhaite si tu prefere JDom
    ++

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    ok merci bien, je vais tester SAX

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Ben tu peux simplement faire une requete XPath "//mabalise" ...

Discussions similaires

  1. Où trouver une listbox avec des checkbox dedans ?
    Par zarbiman dans le forum ASP.NET
    Réponses: 5
    Dernier message: 17/09/2007, 08h59
  2. [DTD] Comment parser une DTD avec JDOM ?
    Par choko83 dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 01/06/2007, 10h38
  3. Selectionner une balise avec un attribut ayant deux valeur
    Par lemok dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 09/05/2007, 17h25
  4. [JDOM] Ajout d'une balise avec un attribut différent.
    Par Nidel dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 27/04/2007, 19h36
  5. [XSLT] - Comment selectionner une balise avec un nom variable ?
    Par bchabot dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2006, 09h59

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