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 :

récup de données d'un fichier xml et à partir de la créer un autre différent


Sujet :

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

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut récup de données d'un fichier xml et à partir de la créer un autre différent
    bonjour,
    mon sujet est le suivant:
    j'ai un fichier xml groupes.xml
    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
     <balise1>
    	<balise2/>
    	<groupes>
    		<groupe nom="G1">
    			<Materiel>
    				<Mate>test*</Mate>
    			</Materiel>
    		</groupe>
    		<groupe nom="G2">
    			<Materiel>
    				<Mate>par*</Mate>
                                    <Mate>tuto*</Mate>
    			</Materiel>
    		</groupe>
    		<groupe nom="G3">
    			<Materiel>
    				<Mate>par*</Mate>
                                    <Mate>naso*</Mate>
    			<Materiel>
    		</groupe>
     
    	</groupes>
     
     </balise1>
    donc moi ce que je veux faire c'est de :à partir de groupes.xml
    obtenir 3 fichiers G1,G2 etG3.xml :
    pour G3.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <sig>
        <host name="par.+" profile-id="G3" />
        <host name="naso.+" profile-id="G3" />
    </sig>
    et G1.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <sig>
        <host name="test.+" profile-id="G1" />
    </sig>
    donc, la question est: comment récupérer une balise et l'affecter à un attribut d'un autre fichier?
    merci d'avance pour vos idées.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut plus précis
    par exemple on a <groupe attribut=g1> et ce groupe est composé de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <prenoms>
    <prenom>lou</prenom>
    <prenom>guillaume</prenom>
    </prenoms>
    donc moi je doit créer un autre fichier xml ou je doit avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <GR name=lou  appartient=g1 />
    <GR name=guillaume  appartient=g1 />
    j'éspére que c'est mieux expliqué...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    alors personne n'a une idée sur ce message ,
    soyez actifs et répondez svp

  4. #4
    Membre chevronné

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2002
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2002
    Messages : 346
    Par défaut
    Va jetter un coup d'oeil à XSLT, tu y trouvera tout ce dont tu as besoin

    Doc officiellle : http://www.w3.org/TR/xslt
    Wikipedia : http://fr.wikipedia.org/wiki/XSLT

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 68
    Par défaut
    Salut à toi,

    pour les fichiers XML en Java je te conseille Sax.

    Personnellement je ne me sert que de ca pour définir mes fichiers de config ou autre.

    Tu télècharge la lib jdom.

    Ca s'utilise super facilement :

    Tu parse ton fichier avec Sax.
    tu recupere la racine et ensuite tu te balade dedans.

    Ainsi tu peux aller chercher une balise X qui posséde l'atribut Y et redéfinir son nom ou son attribut.

    Voici un exemple tout bête:
    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
     
    SAXBuilder sxb = new SAXBuilder();		
    		try 
    		{
    //Ici tu parse ton fichier XML
    			Document documentXml = sxb.build(new File(fic_XML));
     
    //Ici tu recupere la racine
    			Element racineXml = documentXml.getRootElement();
    			Element e = null;
     
    //La tu recupere une liste avec les diverses balises (ca pourrait etre tes groupes)			
    			List l = racineXml.getChildren("requete");
     
    			Iterator i = l.iterator();
    			while (i.hasNext()) {
    //ici tu recupere un element de ta liste
    				e = (Element) i.next();
     
    //Et la je parcourt chacune des balises de mes elements
    				System.out.println(e.getChild("num").getText());
    				System.out.println(e.getChild("sql").getText());	
    				System.out.println(e.getChild("comment").getText());		
    			}
     
    		}catch (NullPointerException e) {
    			System.out.println("Probleme de reconnaissance d'argument");
    			e.printStackTrace();
    		} catch (JDOMException e) {
    			System.out.println("ERREUR JDOM");
    			e.printStackTrace();
    		} catch (IOException e) {
    			System.out.println("ERREUR de fichier");
    			e.printStackTrace();
    		}
    Tu peux ainsi recuperer tout aussi facilement les attributs, mais aussi les redefinir,etc....

    Donc lors de ton parcourt de groupe tu peux récuperer dans ta boucle les diverses infos appartenant à un groupe et les enregistrer dans un autre fichier XML.

    Voilà...
    Bon courage

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 13
    Par défaut
    merci les gars,
    j'ai vu comment parcourir ,mais la question maintenant est
    si j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <prenoms gr=PPP1>
    <prenom>laure</prenom>
    <prenom>magalie</prenom>
    <prenom>guillaume</prenom>
    <prenom>sylvie</prenom>
    </prenoms>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <prenoms gr=PPP2>
    <prenom>salie</prenom>
    <prenom>medi</prenom>
    <prenom>sylviane</prenom>
    </prenoms>
    dans mon fichier résultat1 je veux avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <define  name=laure  profile=PPP1 />
    <define  name=magalie profile=PPP1 />
    <define  name=guillaume  profile=PPP1 />
    <define  name=sylvie  profile=PPP1 />
    donc, la question est comment je peux récuperer le texte de chaque balise prénom et le mettre dans un attribut pour le nouveau fichier .
    est ce que ca marche si j'essaye de lerécuperer dans un string et puis passer ce string en parametre lors de la dclaration de mon attribut .

  7. #7
    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
    Je ne vois pas de difficultés dans ce que tu veux faire...
    Voilà l'algorithme à développer (ce qui ne pose aucun problème, JDom founissant toutes les méthodes nécessaires). Il faut juste prévoir quelques boucles imbriquées:

    - Tu récupères la liste des éléments "groupe"
    - Pour chacun, tu récupères la liste de ses fils
    - pour chaque fils, tu effectues le traitement approprié (récupération du texte si c'est un "Prenom", par exemple)
    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

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

Discussions similaires

  1. [XML] Integrer des données d'un fichier xml dans un autre ?
    Par vpet dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 16/03/2006, 18h41
  2. Extraction de donnés dans un fichier XML
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 13h16
  3. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  4. [XML] stocker des données dans un fichier XML
    Par R3iTt0R dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 27/05/2005, 16h51
  5. Réponses: 3
    Dernier message: 13/12/2004, 13h54

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