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 :

Conversion xml vers xml [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut Conversion xml vers xml
    Bonjour,

    Je voudrai convertir un fichier XML
    A l'origine il est du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <root>
      <h>dsdsdsddssd</h>
      <a>fdfdfdfdfdf</a>
      <b>jdjjdjdj</b>
      <!-- Une multitude de balises -->
      <h>hhhhhhhhhhhh</h>
      ......
    </root>
    Ce que je voudrai obtenir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <root>
      <h>
         <title>dsdsdsddssd</title>
         <a>fdfdfdfdfdf</a>
         <b>jdjjdjdj</b>
         <!-- Une multitude de balises -->
      </h>
      <h>
         <title>hhhhhhhhhhhh</title>
         .....
      </h>
    </root>
    Ce que j'ai essayé de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
    	<xsl:template match="h">
                <h><title><xsl:value-of select="."/></title></h>
    ça ne fait pas ce que je veux, je n'arrive pas à déplacer la balise de fin de l'élément 'h'

    Si qq1 peut m'aider ? merci

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 552
    Points : 21 608
    Points
    21 608
    Par défaut
    Il faut appeler <xsl:apply-templates> sur les éléments à copier à l'intérieur de ton <xsl:template match="h"/>

    Un truc genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:variable name="id" select="generate-id(.)"/>
    <xsl:apply-templates
      select="following-sibling::node()[generate-id(preceding-sibling::h[1]) = $id]"
      />
    Ce qui est un peu plus clair en usant de clés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- En début de XSL, définition de clé -->
    <xsl:key
      name="group"
      match="/root/*[not(self::h)]"
      use="generate-id(preceding-sibling::h)"/>
     
    ...
     
    <!-- apply-templates dans ton template h -->
    <xsl:apply-templates
      select="key('group', generate-id(.))"/>
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    Merci thelvin

    ça fonctionne très bien

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

Discussions similaires

  1. Conversion JSON vers XML
    Par jeedev dans le forum Objective-C
    Réponses: 0
    Dernier message: 20/10/2012, 17h01
  2. [XSLT 1.0] Conversion XML vers XML: non affichage de valeur
    Par f.thevenet dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/03/2011, 10h15
  3. conversion HTML vers XML
    Par alainbrest dans le forum Administration système
    Réponses: 1
    Dernier message: 05/01/2011, 16h06
  4. Conversion HTML vers XML
    Par uraxyd dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 14/10/2007, 20h27

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