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

XSL/XSLT/XPATH XML Discussion :

Combinaison des fichiers XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut Combinaison des fichiers XML
    Bonjour,

    Est-ce qu'il y a une méthode qui permet de combiner deux fichiers XML dans un seul?

    Merci d'avance.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ma foi, il est possible de créer un document avec XSLT, et d'aller chercher son contenu dans plusieurs autres documents avec la fonction XPath document().

    Mais bon, 'faut tout faire soi-même avec ça, il y a pas de fonction toute faite.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bonjour thelvin,

    Merci pour votre réponse.

    Alors:

    Mon problème est la suivante :

    J'ai besoin d'utiliser 2 fichiers xml dans un seul fichier xsl.

    Mais au niveau de l’exécution j'execute un seul fichier xml qui ayant l'appel de ce fichier xsl.

    J'attend votre réponse et merci d'avance.

    Cordialement.
    Zied.

  4. #4
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Ben pour faire ça, la méthode donnée par thelvin (utilisation de la fonction document()) existe justement pour ça.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Alors Merci pour les réponses.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Voici un exemple concret.
    Un premier fichier XML que j'ai appellé "Combine 2 XML files into 1_File1.xml" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?xml version="1.0" encoding="UTF-8"?>
    <dataroot>
    <!-- This is the first of the 2 XML files -->
    	<NumberOfEntries>3</NumberOfEntries>
    	<TotalInv>500</TotalInv>
    	<TotalCreditN>-100</TotalCreditN>
    </dataroot>
    Un second fichier XML que j'ai appellé "Combine 2 XML files into 1_File2.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
    <?xml version="1.0" encoding="UTF-8"?>
    <dataroot2>
    <!-- This is the second of the 2 XML files -->
    	<Invoice>
    		<InvoiceNbr>21</InvoiceNbr>
    		<InvoiceTot>300</InvoiceTot>
    	</Invoice>
    	<Invoice>
    		<InvoiceNbr>22</InvoiceNbr>
    		<InvoiceTot>-100</InvoiceTot>
    	</Invoice>
    	<Invoice>
    		<InvoiceNbr>23</InvoiceNbr>
    		<InvoiceTot>200</InvoiceTot>
    	</Invoice>
    </dataroot2>
    Mes deux fichiers ainsi que que le fichier XSLT sont dans le même folder.

    Voici le fichier XSLT que j'applique sur le premier fichier :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/dataroot">
    <dataroot>
    <xsl:copy-of select="node()"/>
     
    	<xsl:apply-templates select="document('Combine 2 XML files into 1_File2.xml')/dataroot2"/>
     
    </dataroot>
    </xsl:template>
     
    <xsl:template match="/dataroot2/Invoice">
    	<xsl:apply-templates />
    </xsl:template>
     
    <xsl:template match="/dataroot2">
    	<xsl:copy-of select="node()"/>
    </xsl:template>
    </xsl:stylesheet>
    Vous y avez vu la commande document() qui fait appel au second fichier.

    Appliquez le XSLT sur le premier fichier et vous verrez que le résultat est un fichier XML dont les premières lignes sont le fichier 1 suivies des données du fichier 2.

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Il y a un peu plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" indent="yes"/>
     
      <xsl:template match="/*">
        <!-- On s'embête pas à retaper le nom de la racine -->
        <xsl:copy>
          <xsl:copy-of select="node()"/>
          <xsl:copy-of select="document('Combine 2 XML files into 1_File2.xml')/*/node()"/>
        </xsl:copy>
      </xsl:template>
    </xsl:stylesheet>
    Et je ne recommande pas les espaces, ni les majuscules, dans les noms de fichier.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Membre confirmé
    Inscrit en
    Février 2011
    Messages
    465
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 465
    Points : 549
    Points
    549
    Par défaut
    Oui, c'est nettement mieux. Super, Merci.

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

Discussions similaires

  1. Intégration des fichier XML dans une base de données MySQL
    Par bebemoundjou dans le forum XQUERY/SGBD
    Réponses: 8
    Dernier message: 25/11/2005, 22h41
  2. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48
  3. Requete sur des fichiers XML
    Par buildit dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 10/05/2005, 10h57
  4. [Applet] Applet lisant des fichiers XML
    Par GLDavid dans le forum Applets
    Réponses: 3
    Dernier message: 03/09/2004, 16h37
  5. parser des fichier .xml en perl
    Par djibril dans le forum Modules
    Réponses: 13
    Dernier message: 18/05/2004, 17h08

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