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

XML/XSL et SOAP Discussion :

Créer plusieurs fichiers XML à partir d'un seul


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 22
    Par défaut Créer plusieurs fichiers XML à partir d'un seul
    Bonjour,
    Après traitement, j'obtient un fichier XML du type :

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <document>
     
    <article>
     
       <revue>....</revue> 
     
        <date>....</date> 
     
        <titre>....</titre> 
     
        <chapeau>.....</chapeau> 
     
       <texte>....</texte> 
     
     </article>
    <article>
     
       <revue>....</revue> 
     
        <date>....</date> 
     
        <titre>....</titre> 
     
        <chapeau>.....</chapeau> 
     
       <texte>....</texte> 
     
     </article>
    <article>
     
       <revue>....</revue> 
     
        <date>....</date> 
     
        <titre>....</titre> 
     
        <chapeau>.....</chapeau> 
     
       <texte>....</texte> 
     
     </article>
     
     </document>
    Comment faire pour créer un fichier XML différent pour chaque « bloc » du type : <document><article>........</article></document> ?

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    j'ai une solution pour toi mais il faut utiliser xalan
    mon fichier xml de départ
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?xml version="1.0" encoding="ISO-8859-1"?>
     
    <students>
    <student id="1">
    	<adress>
    		<street></street>
    		<cp></cp>
    		<city></city>
    	</adress>
    	<civility>
    		<name>name1</name>
    		<forname></forname>
    		<birthday></birthday>
    		<sex>2</sex>
    	</civility>
    	<study>
    		<class></class>
    	</study>
    </student>
    <student id="2">
    	<adress>
    		<street></street>
    		<cp></cp>
    		<city></city>
    	</adress>
    	<civility>
    		<name>name2</name>
    		<forname></forname>
    		<birthday></birthday>
    		<sex>1</sex>
    	</civility>
    	<study>
    		<class></class>
    	</study>
    </student>
    <student id="3">
    	<adress>
    		<street></street>
    		<cp></cp>
    		<city></city>
    	</adress>
    	<civility>
    		<name>name3</name>
    		<forname></forname>
    		<birthday></birthday>
    		<sex>2</sex>
    	</civility>
    	<study>
    		<class></class>
    	</study>
    </student>
    <base>
    <sexs>
    	<sexe id='1'>M</sexe>
    	<sexe id='2'>F</sexe>
    </sexs>
    </base>
    </students>
    mon xsl
    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
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet 
    	version="1.0" 
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    	xmlns:redirect="org.apache.xalan.xslt.extensions.Redirect"
    	extension-element-prefixes="redirect">
     
    <xsl:template match="students">
    	<html>
    	<h1>liste des eleves:</h1>
    	<ul>
        	<xsl:apply-templates select="//name" />
    	</ul>
        	<xsl:apply-templates select="//student" />
    	</html>
    </xsl:template>
     
    <xsl:template match="name">
    	<li>
    		<xsl:element name="a">
    			<xsl:attribute name="href"><xsl:value-of select="concat(../../@id,'.html')" /></xsl:attribute>
    			<xsl:value-of select="." />
    		</xsl:element>
    	</li>
    </xsl:template>
     
    <xsl:template match="student">
    	<xsl:variable name="file"><xsl:value-of select="concat(@id,'.html')"/></xsl:variable>
    	<redirect:write file="{$file}">
    		<html>
    			<h1>nom: <xsl:value-of select=".//name" /></h1><br/>
    			prenom: <xsl:value-of  select=".//forname" /><br/>
    			<xsl:variable name="id"><xsl:value-of select=".//sex"/></xsl:variable>
    			sexe: <xsl:value-of select="//base/sexs/sex[@id=$id]"/><br/>
    		</html>
    	</redirect:write>
     
    </xsl:template>
     
     
     
    </xsl:stylesheet>
    dans l'exemple on va créer 4 fichiers: 3 fichiers student + 1 fichier index

    la commande utilisée est redirect

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 22
    Par défaut
    Merci de ta réponse, mais qu'est-ce que xalan ?, et à quoi sert le fichier index créer ?

  4. #4
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    bon ben xalan est un parseur xml et un moteur xslt.
    il s'utilise ainsi:

    xalan -in file.xml -xsl file.xsl -out out.xxx

    dans mon exemple je voulais à partir d'une liste d'étudiant générer un fichier index.html qui ferait des liens vers des fichiers contenant les informations d'un étudiant

Discussions similaires

  1. Créer un fichier XML à partir d'une table
    Par Imageek dans le forum SQL
    Réponses: 2
    Dernier message: 06/03/2010, 15h51
  2. créer plusieurs fichiers .xml
    Par bubulle29 dans le forum MATLAB
    Réponses: 2
    Dernier message: 11/05/2009, 09h47
  3. [XSD] Créer un fichier xml à partir de Excel
    Par skyangel dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/01/2008, 12h51
  4. Réponses: 3
    Dernier message: 24/04/2007, 11h39
  5. [C#] Créer un fichier Xml à partir d'un objet
    Par Troopers dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/09/2004, 13h23

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