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 ce xhtml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
      <h4>Indications</h4> 
    - <ul>
      <li>Entorses graves.</li> 
      <li>Fractures du pied.</li> 
      <li>Fractures stables de la jambe 1/3 inférieur.</li> 
      <li>Traumatismes graves des tissus mous.</li> 
      <li>Stabilisation pré et postopératoire.</li> 
      <li>Meilleur adaptation (oedèmes).</li> 
      <li>Evite les points de friction et de compression.</li> 
      </ul>
    <!--h4 et ul sont au même niveau-->
    en appliquant ce 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
     
    <xsl:template match="xhtml:h4"> 
    <rubriques>  
       <xsl:attribute name="titre">
         <xsl:value-of select="."/>   
        </xsl:attribute>   
        <xsl:apply-templates select="xhtml:li"/>
    </rubriques>     
     </xsl:template>
     
    <!--cas-->
    <xsl:template match="xhtml:li"> 
    <item>
             <xsl:attribute name="titre">             
               <xsl:value-of select="."/>  
             </xsl:attribute>        
    </item>
    </xsl:template>
    J'obtient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <rubriques titre="Indications"/>
    <item titre="Entorses graves."/>
    <item titre="Fractures du pied."/>
    <item titre="Fractures stables de la jambe 1/3&#xA;          inférieur."/>
    <item titre="Traumatismes graves des tissus mous."/>
    <item titre="Stabilisation pré et postopératoire."/>
    <item titre="Meilleur adaptation (oedèmes)."/>
    <item titre="Evite les points de friction et de compression."/>
    Sauf que j'aimerai pouvoir imbriquer tout les item dans la balise rubriques
    malgré le <xsl:apply-templates select="xhtml:li"/> rien

    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
     
    <xsl:template match="xhtml:h4">
    <xsl:element name="rubriques"> 
       <xsl:attribute name="titre">
         <xsl:value-of select="."/>   
        </xsl:attribute>   
        <xsl:apply-templates select="xhtml:li"/>
    </xsl:element>     
     </xsl:template>

  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
    merci guemairm pour ta reponse

    le probleme n'est pas de générer l'élément rubriques
    mais l'imbrication de item dans rubriques

    merci pour ton aide

  4. #4
    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
    j'ai compris ton probleme mais est ce que ta tester le code que je t'ai donner

  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
    oui j'ai testé bien sûr mais pareil tjs le même résultat

  6. #6
    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
    Désolé guemairm
    en faite je me suis trompé dans la déclaration du chemin xpath
    merci c cool de ta part


    remarque
    ça marche aussi sans le "<xsl:element"


    merci encore

  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
    un autre probleme

    le résultat
    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
    <rubriques titre="Indications">
    		<item titre="Entorses graves."/>
    		<item titre="Fractures du pied."/>
    		<item titre="Fractures stables de la jambe 1/3&#xA;          inférieur."/>
    		<item titre="Traumatismes graves des tissus mous."/>
    		<item titre="Stabilisation pré et postopératoire."/>
    		<item titre="Meilleur adaptation (oedèmes)."/>
    		<item titre="Evite les points de friction et de compression."/>
    </rubriques>
    <item titre="Entorses graves."/>
    <item titre="Fractures du pied."/>
    <item titre="Fractures stables de la jambe 1/3&#xA;          inférieur."/>
    <item titre="Traumatismes graves des tissus mous."/>
    <item titre="Stabilisation pré et postopératoire."/>
    <item titre="Meilleur adaptation (oedèmes)."/>
    <item titre="Evite les points de friction et de compression."/>
    que faire ?
    merci pour votre aide

  8. #8
    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
    c'est normal puisque le 2eme template s'appliquera de nouveau sur chaque element li, dans ton xml ta pas un element racine il suffirais de faire un seul tempate pour l'element racine du style
    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="/">
    <rubriques> 
       <xsl:attribute name="titre">
         <xsl:value-of select="xhtml:h4"/>   
        </xsl:attribute>   
        <xsl:for-each select="xhtml:li">
           <item>
             <xsl:attribute name="titre">             
               <xsl:value-of select="."/> 
             </xsl:attribute>       
          </item>
      </xsl:for-each>       
    </rubriques>     
     </xsl:template>

  9. #9
    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 ton aide c'est bien cela maintenant je n'ai plus de doublon

    je suis confronté à un autre problême
    certaints fichiers ont la forme suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      <h4>Indications</h4>
      <b>froid</b>
    - <ul> 
      <li>Entorses</li> 
      <li>Fractures du pied.</li> 
      </ul>
      <b>chaud</b>
    - <ul>
      <li>Traumatismes graves des tissus mous.</li> 
      <li>Stabilisation pré et postopératoire.</li> 
      </ul> 
    <!--<h4> et <b> et <ul> sont au même niveau-->
    afin de rajouter s'il existe le contenu de <b> comme valeur d'un deuxieme attribut pour item genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <rubriques titre="Indications"> 
    <item type="froid" titre="Entorses"/> 
    <item type="froid" titre="Fractures du pied."/> 
    <item type="chaud" titre="Traumatismes graves des tissus mous."/> 
    <item type="chaud" titre="Stabilisation pré et postopératoire."/> 
    </indications>
    je n'arrive pas à faire le test sur l'existance d'un l'element frere <b> en postion()-1
    parcequ'il pourrait y avoir d'autres plus loin

    merci de votre aide

  10. #10
    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
    avec ce xslt j'arrive à obtenir un premier resultat

    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
    <xsl:template match="//xhtml:ul">
    <rubriques>    
       <xsl:attribute name="titre"> 
         <xsl:value-of select="(preceding::xhtml:h4)[last()]"/>
        </xsl:attribute> 
     
        <xsl:for-each select="//xhtml:div[@id='content']/xhtml:ul/xhtml:li">   
            <item>        
              <xsl:if test="(preceding::xhtml:p/xhtml:strong)">
                 <xsl:attribute name="type">             
                    <xsl:value-of select="(preceding::xhtml:p/xhtml:strong)[last()]"/>  
                 </xsl:attribute>        
              </xsl:if>
                <xsl:attribute name="titre">             
                       <xsl:value-of select="."/>  
                </xsl:attribute>        
            </item>
     
       </xsl:for-each>   
     
    </rubriques>  
    </xsl:template>
    sauf que j'ai encore une l'histoire des doublons
    2 resultet identiques

  11. #11
    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
    avec ce xslt j'arrive à obtenir un premier resultat

    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
    <xsl:template match="//xhtml:ul">
    <rubriques>    
       <xsl:attribute name="titre"> 
         <xsl:value-of select="(preceding::xhtml:h4)[last()]"/>
        </xsl:attribute> 
     
        <xsl:for-each select="//xhtml:ul/xhtml:li">   
            <item>        
              <xsl:if test="(preceding::xhtml:p/xhtml:strong)">
                 <xsl:attribute name="type">             
                    <xsl:value-of select="(preceding::xhtml:p/xhtml:strong)[last()]"/>  
                 </xsl:attribute>        
              </xsl:if>
                <xsl:attribute name="titre">             
                       <xsl:value-of select="."/>  
                </xsl:attribute>        
            </item>
     
       </xsl:for-each>   
     
    </rubriques>  
    </xsl:template>
    sauf que j'ai encore l'histoire des doublons
    2 resultet identiques

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. [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
  4. xhtml->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 14/06/2005, 11h17
  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