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

Maven Java Discussion :

Concaténation de XML


Sujet :

Maven Java

  1. #1
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut Concaténation de XML
    Bonjour,

    Existe-t-il un plugin sous Maven 2 permettant de concaténer deux fichiers XML pour, par exemple, réaliser cela ?

    Fichier 1 :

    Fichier 2 :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <a>
     <c/>
    </a>
    <d/>

    Résultat :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <a>
     <b />
     <c />
    </a>
    <d />

    Merci par avance
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Points : 639
    Points
    639
    Par défaut
    Je doute que ça existe "prêt à l'emploi"... D'ailleurs ce que tu veux faire est un merge (mélange des deux fichiers) et non une concaténation (une mise bout à bout).

    Si tu sais te développer une classe Java pour faire le merge de tes deux fichiers tu peux appeler ensuite "une classe main" grâce au "exec-maven-plugin" :
    Code XML : 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
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.2.1</version>
      <executions>
        <execution>
          <goals>
            <goal>java</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <mainClass>com.example.MergeXmlMain</mainClass>
        <arguments>
          <argument>fichier1.xml</argument>
          <argument>fichier2.xml</argument>
        </arguments>
      </configuration>
    </plugin>

    Romain.

  3. #3
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ton fichier 2 n'est déjà pas un xml valide, ça commence mal. Un fichier xml ne peux avoir qu'un seul élément racine et il en a deux (a et d)


    Pour le reste, j'avais déjà du, il y a pas mal de temps, faire un merge de deux fichier xml. La solution la plus "simple", ça a été de récupérer une XSLT sur le net qui faisait déjà le boulot, et de passer tout ça à un plugin xslt. En effet, il n'y a pas vraiment de règle général pour le merge, et le xslt c'est ce qu'il y a de plus souple pour définir ce que tu veux concrètement. Par exemple:

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <a>
       <b attr1="1">
          <c/>
       </b>
    </a>

    et
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <a>
       <b attr2="2">
          <d/>
       </b>
    </a>

    on peux merger comme ceci

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <a>
       <b attr1="1" attr2="2">
          <c/>
          <d/>
       </b>
    </a>

    ou comme ceci
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <a>
       <b attr1="1">
          <c/>
       </b>
       <b attr2="2">
          <d/>
       </b>
    </a>
    Je peux éventuellement te ressortir ça du projet dans la journée pour te servir de base. C'est un vieux projet qui a suivi un évolution ant => maven 1 => maven 2, du coup la génération xslt passe par un plugin ant pour maven Donc il te restera du travail dessus

  4. #4
    Membre habitué Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Points : 180
    Points
    180
    Par défaut
    Le XSL me parait une bonne solution
    "J'glande pas ! Ça compile ..."

    4rocky4
    - Un con qui marche ira plus loin q'un intellectuel assis -

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

Discussions similaires

  1. Concaténation fichiers XML
    Par majduuus dans le forum C#
    Réponses: 0
    Dernier message: 29/07/2013, 12h29
  2. Concaténation de fichier XML
    Par Blackpanther dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 25/11/2009, 15h04
  3. [DOM] Concaténer des documents XML
    Par knebhi dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 21/06/2009, 14h33
  4. concaténer plusieurs fichiers xml avec awk
    Par flora806 dans le forum Linux
    Réponses: 0
    Dernier message: 19/06/2009, 17h18
  5. Concaténation XML en VB
    Par hari37 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 04/05/2007, 19h27

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