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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    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
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Points : 1
    Points
    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 éprouvé
    Avatar de michel.di
    Homme Profil pro
    Freelance
    Inscrit en
    Juin 2009
    Messages
    782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 782
    Points : 1 042
    Points
    1 042
    Par défaut
    salut,
    ça devrait t'aider lien
    Docteur en informatique
    Freelance R&D, Web
    Activité freelance : https://redinnov.fr
    Page perso : https://michel-dirix.com/

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    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 à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 25
    Points : 16
    Points
    16
    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