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 :

Decoupage fichier XML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Référent technique
    Inscrit en
    Juillet 2007
    Messages
    834
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Référent technique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 834
    Par défaut Decoupage fichier XML
    Bonjour tt le monde,

    J'ai un fichier XML disposant d'une structure assez sympathque (issu d'un formulaire infopath ou j'ai 500 champs).

    Il est de la forme:
    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
    <mesChamps>
        <champs1>1</champs1>
        <champs2>2</champs2>
        ...
        <champs50>50</champs50>
        <SectionRecursive>
              <champs51> 51 </champs51>
              <champs52> 52 </champs52>
               ...    
              <champs99> 99 </champs99>
        </SectionRecursive>
        <SectionRecursive>
              <champs51> 51 </champs51>
              <champs52> 52 </champs52>
               ...    
              <champs99> 99 </champs99>
        </SectionRecursive>
        ...
        <SectionRecursive>
              <champs51> 51 </champs51>
              <champs52> 52 </champs52>
               ...    
              <champs99> 99 </champs99>
        </SectionRecursive>
        <champs101>101</champs101>
        <champs102>102</champs102>
    </mesChamps>
    Mon souci est que je veux découper mon fichier XML en autant de fichiers que j'ai de SectionRecursive.

    J'aimerais donc obtenir un fichier XML de la forme:
    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
     
    <mesChamps>
        <champs1>1</champs1>
        <champs2>2</champs2>
        ...
        <champs50>50</champs50>
        <SectionRecursive>
              <champs51> 51 </champs51>
              <champs52> 52 </champs52>
               ...    
              <champs99> 99 </champs99>
        </SectionRecursive>
        <champs101>101</champs101>
        <champs102>102</champs102>
    </mesChamps>
    C'est à dire avec une seule fois la balise <SectionRecursive> pour chacun de mes fichiers (le 1er fichier aura la 1ere SectionRecursive,le 2ème fichier aura la 2ème SectionRecursive,le n-ème fichier aura la n-ème SectionRecursive).

    Qui peut m'aider ou qui as déja fais ceci?
    Merci d'avance.

  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
    pour créer à partir d'un fichier xml, x fichiers tu peux utiliser la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <redirect:write file="{$file}">
    et un exemple de xsl non testé
    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
     
    <?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="/">
        	<xsl:apply-templates select="//SectionRecursive" />
    </xsl:template>
     
     
     
    <xsl:template match="node() | @*">
    	<xsl:copy>
    		<xsl:apply-templates select="@* | node()"/>
    	</xsl:copy>
    </xsl:template>
     
    <xsl:template match="SectionRecursive">
    	<xsl:variable name="file"><xsl:value-of select="concat(position(),'.html')"/></xsl:variable>
    	<redirect:write file="{$file}">
    		<SectionRecursive>
    			<xsl:apply-templates select="@* | node()"/>
    		</SectionRecursive>
    	</redirect:write>
     
    </xsl:template>
     
     
     
    </xsl:stylesheet>

Discussions similaires

  1. Decoupage fichier XML
    Par Foyus dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/01/2015, 15h36
  2. Recuperation du fichier xml
    Par Geulderack dans le forum XMLRAD
    Réponses: 10
    Dernier message: 28/02/2003, 11h06
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 15h22
  4. [Kylix] Composant IBM pour fichiers XML
    Par Mister Nono dans le forum EDI
    Réponses: 1
    Dernier message: 29/09/2002, 20h28
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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