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 :

Aide transformation vers HTML, perte de balise


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Inscrit en
    octobre 2009
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 39
    Points : 20
    Points
    20
    Par défaut Aide transformation vers HTML, perte de balise
    Bonjour à tous,

    Je suis assez novice en la question et malgré quelques lectures sur le sujet, j'ai un peu de mal à appréhender mon problème.

    Je suis sur une solution qui tourne correctement, et que je dois simplement modifier.
    Aujourd'hui, dans mon XML, j'ai une balise <renvoi> qui peut se trouver à plusieurs endroits différents.

    Dans ma XSL, mon <renvoi> est traité ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="types:renvoi">
      <span class="clRenvoi"> <xsl:apply-templates/></span>
    </xsl:template>
    disons que mes <renvoi> ont un style qui les affiche en souligné.

    Ensuite, j'ai des <renvoi> qui se situent dans mes extraits <extrait>, et j'affiche <extrait> comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="art:extrait">
      <section class="clInterieurEncadre">
        <span class="clTitreMeta">Extrait :</span>
        <xsl:apply-templates/>
      </section>
    </xsl:template>
    Jusqu'ici tout va bien, cette portion XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <extrait>
      <commun:alinea>
        <types:renvoi type="CASS" refid="12-45644" annee="2012" mois="janvier" jour="5">Cass. ass. plén., 5 janvier 2012, n° 12-45644</types:renvoi> 
      </commun:alinea>
    </extrait>
    me renvoi bien une fois transformée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span class="clTitreMeta">Extrait :</span>
    <p><span class="clRenvoi">Cass. ass. plén., 5 janvier 2012, n° 12-45644</span></p>
    La complexité se trouve dans cette partie du XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <meta:sous_titre>
      <types:renvoi type="CASS" refid="12-45644" annee="2012" mois="janvier" jour="5">Cass. ass. plén., 5 janvier 2012, n° 12-45644</types:renvoi>
    </meta:sous_titre>
    ma transformation, à cet endroit est un peu plus complexe :
    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="art:meta|lot:meta">
      <p class="clMeta">
        <span class="clTitleContentHighBlue"><xsl:value-of select="concat(@id,' ')"/></span> <span class="clTitle">(<xsl:value-of select="meta:type_article"/>)</span>
      </p>
      <p class="clMeta">
        <span class="clTitle">Sur-titre : </span><span class="clOnTitleContentHighBlue"><xsl:value-of select="meta:sur_titre"/></span>
      </p>
      <p class="clMeta">
        <span class="clTitle">Titre : </span><span class="clTitleContentHighBlue"><xsl:value-of select="commun:titre"/></span>
      </p>
      <p class="clMeta">
        <span class="clTitle">Sous-titre : </span><span class="clSubTitleContentHighBlue"><xsl:value-of select="meta:sous_titre"/></span>
      </p>
    <xsl:apply-templates select=".//meta:auteur"/>
    </xsl:template>
    à cet endroit, la transformation me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <span class="clTitle">Sous-titre : </span>
    <span class="clSubTitleContentHighBlue">Cass. ass. plén., 5 janvier 2012, n° 12-45644</span>
    je perds le renvoi. je ne comprends pas le mécanisme qui fait que, partout ailleurs, lorsque j'ai un <renvoi> il s'affiche avec son style assigné au tout début, mais uniquement sans le <sous_titre> je perd cette information.
    J'ajoute que j'ai essayé de modifier mon XSD afin d'autoriser de de placer mon <renvoi> dans un <commun:alinea> dans le sous_titre, mais cela ne résout pas le problème.

    Merci d'avance a qui voudra se casser un peu la tête, je peux fournir des informations complémentaire au besoin.
    Bonne journée
    Romain

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    septembre 2004
    Messages
    11 838
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 11 838
    Points : 20 080
    Points
    20 080
    Par défaut
    Hello,

    le mécanisme c'est que d'habitude tu utilises <xsl:apply-templates> mais là tu utilises <xsl:value-of>.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XSL] Transformation d'un tableau (fichier xml vers html)
    Par Bananou dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 27/04/2010, 13h03
  2. perte de balises html avec AJAX super bizarre
    Par shadeoner dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/07/2009, 18h23
  3. [XSLT] probleme de copie de balise de XML vers HTML via XSL
    Par Clercq dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/11/2006, 14h52
  4. [Outil] transformation de HTML vers XML
    Par nsanabi dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 23/08/2006, 23h01
  5. XML/XSL vers HTML: comment transformer les linefeed en <B
    Par AlainM dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/11/2003, 13h30

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