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 :

Parcourir un document JDOM de manière récursive [JDOM]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut Parcourir un document JDOM de manière récursive
    Bonjour,

    Je suis en train de créer un petit parseur HTML. Je souhaite coder une fonction qui me permette de reprendre tous les noeuds (donc dans toute l'arborescence) qui ont pour attribué donné la valeur de X (X étant donnée en paramètre).
    J'ai fais cela
    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
    /** Function to seek element by their class name
             * @param null for recursivity, otherwise an element 
             * @param Name of the class
             * @return A vector of element
             */
       public Vector<Element> getElementsByClassName(Element departure, String name)
       {
    	   Vector<Element> elts = new Vector<Element>();
    		if (departure == null) 
    		{
    			departure = this.root;
    		}
    		List<Element> list = departure.getChildren();
    		Iterator<Element> it = list.iterator();
    		if (list.size() > 0) 
    		{
    			Element current = (Element) it.next();
    			while (it.hasNext()) 
    			{
    				System.out.println(current.getParentElement());
    				if (current.getAttribute("class") != null && current.getAttribute("class").equals(name)) 
    				{
    					elts.add(current);
    				}
    				List<Element> children = current.getChildren();
    				for (int k = children.size() - 1; k > 0; k--) 
    				{
    					this.getElementsByClassName(children.get(k), "class");
    				}
    			}
    		}
    		return elts;
    	}
    mais il ne me semble pas que la fonction soi bien récursive.
    Est ce que je m'y prends bien ?

    [EDIT] J'ai oublié de préciser :
    Je l'appel avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector<Element> div = parser.getElementsByClassName(null,"menu");
    [/EDIT]

  2. #2
    Membre éprouvé
    Homme Profil pro
    Technophile Web
    Inscrit en
    Mai 2007
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Technophile Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 930
    Par défaut
    je me répond à moi même en me disant que j'urais du lire toutes la doc jdom avant de me lancer.
    en fait j'ai fais un
    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
    public Vector<Element> getElementsByClassName(String name)
       {
    	   Vector<Element> elts = new Vector<Element>();
    	   Iterator it = this.root.getDescendants();
    		while(it.hasNext())
    		{
    			Object current = it.next();
    			if(current.getClass().getCanonicalName().equals("org.jdom.Element"))
    			{
    				Element elt = (Element) current;
    				if (elt.getAttribute("class") != null && elt.getAttributeValue("class").equals(name)) 
    				{
    					elts.add(elt);
    				}
    			}
    		}
    voila j'ai mis le code, au cas où cela servirait à qqun

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

Discussions similaires

  1. Chargement Treeview de manière récursive
    Par exclusif dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 23/01/2007, 13h42
  2. [Conseil][Amélioration]Parser un Document (JDOM) avec SAX
    Par leminipouce dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 19/12/2005, 14h30
  3. [XSLT] remplacement de noeuds de manière récursive
    Par daniel_r dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 24/10/2005, 20h13
  4. [Zip] Dézipper de manière récursive
    Par Sfeabg dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 08/03/2005, 16h24
  5. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16

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