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 :

générer un xml à partir d'un xml


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Points : 26
    Points
    26
    Par défaut générer un xml à partir d'un xml
    Bonjour,
    J’ai un fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <as>
      <a att="att1">
           <a1>x1</a1>
           <a2>x2</a2>
           <a3>x3</a3>
      </a>
    <a att="att2">
           <a1>y2</a1>
           <a2>y2</a2>
            <a3>y3</a3>
      </a>
    </as>
    Comment je peux faire pour le réécrire de cette façon :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <n_as>
      <a att="att1">
           <A id="1">
              <a1>x1</a1>
              <a2>x2</a2>
            </A>
         <A id="2">
           <a3>x3</a3>
         </A>
      </a>
      <a att="att1">
           <A id="1">
              <a1>y1</a1>
              <a2>y2</a2>
            </A>
         <A id="2">
           <a3>y3</a3>
         </A>
      </a>
    </n_as>
    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour...

    Euh, c'est quoi, c'est le jeu des 7 erreurs :

    Première possibilité : tu ouvres le XML original dans un éditeur, tu fais CTRL+A, et tu saisis le nouveau XML...

    Deuxième possibilité : tu nous expliques quelles sont les règles qui permettent de passer d'un schéma à l'autre, et on essaiera de t'aider à rédiger le code XSLT (c'est ce que tu vas utiliser, je suppose ?) qui les implémente...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    C'est la deuxième possibilité qui m'intéresse

    Le but c'est d'immerger 2 fichiers xml avant que j'applique un parser pour insérer les données dans une base.

    Pour faire cela, je dois transformer (xslt) mon fichier original a.xml (1er code de mon premier message) en a1.xml (comme le 2éme code de mon premier message) et après j'immerge a1.xml et b.xml

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    je crois que ce n est pas ce que grandfather t as demandé...
    en fait se sont les règles de transformation...
    par exemple
    on peut voir que tes balises a3 se retrouvent sous une balise <A id="2">
    ...donc on pourrait dire:
    - toutes les balises <a3> se retrouvent sous <A id="2">
    - toutes les balises suivant les 2 premieres se retrouvent dans une balise <A id="2">
    et j en passe...

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Désolé si je n'avais pas compris.
    Et pour les règles de transformation :
    -toutes les balises <a1> et <a2> se trouvent sous <A id="1">
    -toutes les balises <a3> se trouvent sous <A id="2">

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Pourquoi la ligne
    se transforme en
    dans le second fichier ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    je suppose que ton att1 et 2 doit résulter d une erreur de saisie car je n en ai pas tenu compte ici

    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
    <?xml version="1.0" encoding="UTF-16"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    	<xsl:template match="/"><xsl:apply-templates/></xsl:template>
    	<xsl:template match="as">
    		<xsl:element name="n_as">
    			<xsl:apply-templates/>		
    		</xsl:element>	
    	</xsl:template>
    	<xsl:template match="a">
    		<xsl:copy>
    			<xsl:copy-of select="@*"/>
    			<xsl:element name="A">
    				<xsl:attribute name="id">1</xsl:attribute>
    				<xsl:copy-of select="a1 | a2"/>
    			</xsl:element>		
    			<xsl:element name="A">
    				<xsl:attribute name="id">2</xsl:attribute>
    				<xsl:copy-of select="a3"/>
    			</xsl:element>				
    		</xsl:copy>
    	</xsl:template>
    </xsl:stylesheet>

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Effectivement c'est une erreur de frappe que je n'ai pas vu.
    je vais voir ce que tiscars m'a donné et je vous tiens au courant.
    Merci encore

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 43
    Points : 26
    Points
    26
    Par défaut
    Merci les mecs, grâce à ton code tiscars, je pourrai faire ce que je veux.
    Merci encoe

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

Discussions similaires

  1. [FOP] Générer un PDF à partir de plusieurs XML
    Par Mr Meuble dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 16/01/2009, 12h00
  2. Générer un exemple de fichier xml à partir d'un fichier
    Par leuqui dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 01/07/2005, 09h25
  3. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 00h06
  4. générer un fichier xml à partir xsl ou xslt
    Par sarah1 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/05/2005, 17h57
  5. Réponses: 2
    Dernier message: 27/05/2004, 00h40

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