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 :

xhtml->xml transformation xslt


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut xhtml->xml transformation xslt
    Salut tout le monde,

    A partir de ma source qui ressemble à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
     <table>
      <tr>
       <td>
         <b> nom du produit </b>
         <br/>
         nom de la gamme
       </td>
      </tr>
     </table>
    </html>
    j'ai appliqué le xslt suivant
    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
    <xsl:template match="/">
     
           <produit>
             <xsl:attribute name="titre">         
               <xsl:value-of select="//b"/> 
             </xsl:attribute> 
           </produit> 
     
           <gamme>   
                  <xsl:attribute  name="titre"> 
                     <xsl:copy-of select="text()"/> 
                  </xsl:attribute>
           </gamme>
     
      </xsl:template>
    afin obtenir le resultat suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <produit titre="nom du produit">
    <gamme  titre="nom de la gamme">
    mais cela ne me recupère pas le text de : nom de la gamme
    j'ai essayé de remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    copy-of select="text()"
    par et là il me recupère tout le text (logique)
    comment faire pour ne recupérer que le text "nom de la gamme" pour la valeur de l'attribut de la balise gamme?

    merci pour votre aide

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    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
     
    <xsl:template match="/"> 
    <xsl:apply-templates/>
    </xsl:template>
     
    <xsl:template match="td">
      <xsl:element name="produit">
       <xsl:attribute name="titre">
         <xsl:value-of select="//b"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:element name="gamme">
        <xsl:attribute  name="titre">
         <xsl:apply-templates/>
        </xsl:attribute>
      </xsl:element>
    </xsl:template>
    j'ai pas testé le code

  3. #3
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    J'ai toujours le même resultat à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <produit titre="nom du produit"> 
    <gamme titre="nom du produit nom de la gamme">
    Alors que le resultat voulue est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <produit titre="nom du produit"> 
    <gamme  titre="nom de la gamme">
    merci ton aide guemairm

  4. #4
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    J'ai remplacé
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:copy-of select="text()"/>
    et ça marche

    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
    <xsl:template match="/"> 
    <xsl:apply-templates/> 
    </xsl:template> 
     
    <xsl:template match="td"> 
      <xsl:element name="produit"> 
       <xsl:attribute name="titre"> 
         <xsl:value-of select="//b"/> 
        </xsl:attribute> 
      </xsl:element> 
      <xsl:element name="gamme"> 
        <xsl:attribute  name="titre"> 
           <xsl:copy-of select="text()"/>
        </xsl:attribute> 
      </xsl:element> 
    </xsl:template>
    merci A+

  5. #5
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    quelqu'un pourrait m'expliquer pourquoi dans ce cas precis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:copy-of select="text()"/>
    fonctionne :

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 63
    Points : 74
    Points
    74
    Par défaut
    <xsl:copy-of> permet de recopier les noeuds sélectionnés, dans l'arbre du document XML résultant, sinon je pense que tu peut aussi utiliser ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:value-of select="text()"/>
    ou
    <xsl:value-of select="."/>
    et je trouve ça plus logique

  7. #7
    yos
    yos est déconnecté
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 140
    Points : 60
    Points
    60
    Par défaut
    Merci pour ta reponse guemairm,


    l'élément "xsl:copy-of" declanche une copie en profondeur de tous les noeuds séléctionnés par l'exprétion de l'attribut "select"
    la copie de tous les descendants avec leurs attributs et leur contenu textuel.


    merci

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

Discussions similaires

  1. XML Transformation grace a un XSLT
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 01/03/2006, 16h09
  2. probleme de transformation d'un XML via XSLT
    Par nayron_1 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 08/11/2005, 14h19
  3. xhtml-->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 15/06/2005, 15h23
  4. [XSLT][XSD>XML]transformer xsd en xml avec xslt
    Par émile-henri dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/06/2005, 15h06
  5. transformation xml via xslt
    Par ronnie dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 10/05/2005, 10h58

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