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 :

[XSLT]Hiérarchie incorrecte


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre actif Avatar de Poussy-Puce
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2005
    Messages : 357
    Points : 222
    Points
    222
    Par défaut [XSLT]Hiérarchie incorrecte
    Bonjour, j'ai un fichier xml disposé ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
    <info>
    <formats>
      <item ID="YB1.36LT">
      <title ln="en" Value="Carton Can 1.36lt" /> 
      <title ln="fr" Value="Carton Can 1.36lt" /> 
      </item>
      <item ID="YC1.2LT">
      <title ln="en" Value="Can 1.2 lt" /> 
      <title ln="fr" Value="Can 1.2 lt" /> 
      </item>
      .......
    à l'aide d'un fichier XSLT, j'aimerais obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <formats>
      <item ID="YB1.36LT">
      <title ln="en">Carton Can 1.36lt</title> 
      <title ln="fr"> Carton Can 1.36lt</title> 
      </item>
    .......
    Alors mon xslt :
    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-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:template match="formats">
    		<formats>
    			<xsl:apply-templates select="/ROOT/info/formats/item"/>
    		</formats>
    	</xsl:template>
            <xsl:template match="/ROOT/info/formats/item">
    		<xsl:element name="item">
    			<xsl:attribute name="id"><xsl:value-of select="@ID"/></xsl:attribute>
    			<xsl:apply-templates select="/ROOT/info/formats/item/title"/>
    		</xsl:element>
    	</xsl:template>
           <xsl:template match="/ROOT/info/formats/item/title">
    		<xsl:element name="title">
    			<xsl:attribute name="lang"><xsl:value-of select="@ln"/></xsl:attribute>
    			<xsl:value-of select="@Value"/>
    		</xsl:element>
    	</xsl:template>
    </xsl:stylesheet>
    Mais j'obtiens :
    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
     
    <formats>
      <item ID="YB1.36LT">
      <title ln="en" Value="Carton Can 1.36lt" /> 
      <title ln="fr" Value="Carton Can 1.36lt" /> 
      <title ln="en" Value="Can 1.2 lt" /> 
      <title ln="fr" Value="Can 1.2 lt" /> 
      </item>
      <item ID="YC1.2LT">
      <title ln="en" Value="Carton Can 1.36lt" /> 
      <title ln="fr" Value="Carton Can 1.36lt" /> 
      <title ln="en" Value="Can 1.2 lt" /> 
      <title ln="fr" Value="Can 1.2 lt" /> 
      </item>
      .......
    Bon voilà... ce fût long... mais est-ce que quelqu'un voit mon erreur... c'est certainement très simple, mais je débute avec XML et XSLT...

    Merci d'avance

  2. #2
    Membre éprouvé
    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
    Points : 1 063
    Points
    1 063
    Par défaut
    sample.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
    17
    18
    19
     
    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
    <info>
    <formats>
      <item ID="YB1.36LT">
      <title ln="en" Value="Carton Can 1.36lt" /> 
      <title ln="fr" Value="Carton Can 1.36lt" /> 
      </item>
      <item ID="YC1.2LT">
      <title ln="en" Value="Can 1.2 lt" /> 
      <title ln="fr" Value="Can 1.2 lt" /> 
      </item>
      <item ID="FRED">
      <title ln="en" Value="Can 1.2 lt" /> 
      <title ln="fr" Value="Can 1.2 lt" /> 
      </item>
    </formats>
    </info>
    </ROOT>
    sample.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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:template match="/">
    		<formats>
    			<xsl:apply-templates select=".//item"/>
    		</formats>
    	</xsl:template>
            <xsl:template match="item">
    		<xsl:element name="item">
    			<xsl:attribute name="id"><xsl:value-of select="./@ID"/></xsl:attribute>
    			<xsl:apply-templates select="./title"/>
    		</xsl:element>
    	</xsl:template>
           <xsl:template match="title">
    		<xsl:element name="title">
    			<xsl:attribute name="lang"><xsl:value-of select="./@ln"/></xsl:attribute>
    			<xsl:value-of select="./@Value"/>
    		</xsl:element>
    	</xsl:template>
    </xsl:stylesheet>

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/11/2013, 16h19
  2. Réponses: 0
    Dernier message: 29/10/2013, 12h22
  3. XSLT - Transformation fichier plat en XML hiérarchisé
    Par AlfMan34 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 22/02/2010, 11h07
  4. [Documentation][XSLT][XSLFO]Les balises xslfo
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2002, 11h31
  5. [XSLT]position d'un element de valeur specifique
    Par squat dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/07/2002, 16h42

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