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

Développement Web en Java Discussion :

Utilisation de JDOM/parseur XML


Sujet :

Développement Web en Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Par défaut Utilisation de JDOM/parseur XML
    Bonjour à tous, je cherche de l'aide car j'ai vraiment du mal avec le fonctionnement du parseur java jdom.

    Je situe mon problème :
    J’aimerai récupérer dans un tableau, certaines informations d'un fichier XML.

    En fait j'aimerais généraliser ce traitement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Element Datafield = racine.getChild("datafield");
    String zone =Datafield.getAttributeValue("tag");
    String souszone=Datafield.getChild("subfield").getAttributeValue("code");
    String Val=Datafield.getChildText("subfield");
    à l'ensemble des Child de mon fichier XML , en effet, je peux avoir plusieur datafield et chaque datafields peut avoir plusieurs subfield

    mon souci c'est que lorsque j'utilise la fonction .getChildren , j'ai en sortie une liste sur laquelle je ne peux plus utilisé les fonctions de recherche d'attributs etc(propre aux éléments )

    Si vous avez des idées je suis preneur.

    En tout cas merci d'avance !

    ps: exemple fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    </datafield>
    	<datafield tag="245" ind1="1" ind2=" ">
    		<subfield code="f">Testicularité 245 f</subfield>
    		<subfield code="g">Testicularité 245 g mais diff</subfield>
    	</datafield>
    	<datafield tag="256" ind1="1" ind2=" ">
    		<subfield code="a">Testicularité 256 a</subfield>
    		<subfield code="b">Testicularité 256 b mais diff</subfield>
    	</datafield>
    	<datafield tag="280" ind1="1" ind2=" ">
    		<subfield code="d">Testicularité 280 d</subfield>
    	</datafield>
    (à la fin je cherche à avoir un tableau du style {245,f,Testicularité 245 f}{245,g,Testicularité 245 g mais diff}{256,a,Testicularité 245 a} etc

  2. #2
    Invité de passage
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Par défaut
    Salut,

    voici ce que j'aurais fait avec DOM, je suppose que celà doit être transposable en JDOM sans trop de modifications :

    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
     
    public class Sample {
     
    	private static Document doc;
     
    	public static void main(String[] args) throws Exception {
     
                              /* Initialisation de l'instance "doc" */
     
    		NodeList nodeList = Sample.doc.getElementsByTagName("datafield");
    		for (int s = 0; s < nodeList.getLength(); s++) {
    			Node currentNode = nodeList.item(s);
    			System.out.println(((Element)currentNode).getAttribute("tag"));
     
    			NodeList nodeListBis = ((Element)currentNode).getElementsByTagName("subfield");
    			for (int t = 0; t < nodeListBis.getLength(); t++) {
    				Node currentNodeBis = nodeListBis.item(t);
    				System.out.println(((Element)currentNodeBis).getAttribute("code"));	
    				System.out.println(((Element)currentNodeBis).getTextContent());
    			}
     
    		}
     
    	}
     
    }
    Bonne chance.

  3. #3
    Membre émérite
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Par défaut
    salut,
    ça devrait t'aider lien

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Par défaut
    Merci azou je teste cela dans la journé.

    Pour le lien vers le tuto, c'est mon début de piste, j'ai l'impression qu'il faille que je fasse un filtre ; ce que je ferais si je ne trouve pas autrement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Par défaut
    Merci de vos pistes
    Je m'en suis sortis avec ça =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     List<Element> listDatafiled = racine.getChildren("datafield");
     for (Element datafield : listDatafiled)
     {
                        String zone =datafield.getAttributeValue("tag");
    		    List<Element> listSubfield = datafield.getChildren("subfield");
    		    for (Element subfield : listSubfield)
    		    {
    		    	String souszone=subfield.getAttributeValue("code");
    		    	String Val=subfield.getText();
    		    }
     }

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

Discussions similaires

  1. Selon vous, le meilleur parseur XML ?
    Par Community Management dans le forum XML/XSL et SOAP
    Réponses: 22
    Dernier message: 05/06/2012, 12h39
  2. [JDOM] Exporter les données d'un fichier XML vers une base de données MySQL en utilisant API JDOM
    Par fruwen7 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 23/05/2012, 15h56
  3. [Xerces] Utilisation Donnees D'un XML avec Xerces C++
    Par Laeticia dans le forum Bibliothèques
    Réponses: 12
    Dernier message: 04/08/2006, 14h01
  4. Parseur XML to Java pour creation de Class
    Par yannick101 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 18/07/2005, 14h20

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