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] Affichage des balises xml en html via une xslt


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut [XSLT] Affichage des balises xml en html via une xslt
    Bonjour,

    Je voudrais afficher dans une page html une partie de mon document xml tel quel.
    Dans ma xsl, j'utilise <xsl:copy-of> et je pensais pouvoir faire par la suite un translate($result,'&amp;lt','&lt') mais lorsque je mets en paramètre le résultat de mon <xsl:copy-of>, les balises disparaissent complètement...(même avant d'utiliser le translate)

    Comment dois-je faire?

    Rm : j'utilise Cooktop qui me permet de voir le résultat avant et après interprétation html

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Translate n'est pas la bonne fonction car il transforme lettre par lettre et non mot par mot.
    ce qui fait que:


    si tu y applique ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    translate('abcd','ABCD')
    te renverra:


    En XSLT 1.0 il n'existe pas de replace par contre ca existe en XSLT2.0.

  3. #3
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Voilà une petite feuille de style sans prétention qui transforme un document XML en texte dans une page HTML :
    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
    23
    24
    25
    26
     <xsl:stylesheet version="1.0" txs:name="xml2txt">
      <xsl:template match="/">
       <html>
        <body>
         <p><xsl:apply-templates/></p>
        </body>
       </html>
      </xsl:template>
      <xsl:template match="*">
       <xsl:text>&lt;</xsl:text>
       <xsl:value-of select="name()"/>
       <xsl:for-each select="@*">
        <xsl:value-of select="concat(' ',name(),'=&quot;',.,'&quot;')"/>
       </xsl:for-each>
       <xsl:choose>
        <xsl:when test="*">
         <xsl:text>&gt;</xsl:text>
         <xsl:apply-templates/>
         <xsl:value-of select="concat('&lt;/',name(),'&gt;')"/>
        </xsl:when>
        <xsl:otherwise>
         <xsl:text>/&gt;</xsl:text>
        </xsl:otherwise>
       </xsl:choose>
      </xsl:template>
     </xsl:stylesheet>
    Attention !!! il faut écrire concat(' ',name(),'=&quot;',.,'&quot;') et non pas concat(' ',name(),'="',.,'"'). Je crois que le visualisateur de code du site a un bug

    Il n'y a pas de mise en forme "intelligente", couleurs et sauts de ligne, mais bon, ce n'est qu'un exemple!

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    A virgul, ça ne me posait pas de problème qu'il remplace lettre par lettre puisque je veux juste remplacer les < par &lt; et les > par &gt; merci quand même...

    A alain.couthures, c'est ce que je pensais faire au final mais je trouvais ça un peu long (je suis un peu perfectionniste ), c'est pour ça que j'essayais autrement... Mais après plusieurs recherches sur le net, je crois qu'il n'y a pas de meilleure solution...
    Merci à toi.

Discussions similaires

  1. [XSLT] Récupérer des donnees XML en HTML
    Par mystra dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/11/2009, 15h53
  2. [XSLT] inclure des balises html dans xml
    Par paty03 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 25/02/2008, 15h13
  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. [XSLT]Modifier l'ordre des balises XML
    Par Philos15 dans le forum XSL/XSLT/XPATH
    Réponses: 12
    Dernier message: 18/10/2006, 10h54
  5. [XML][XSLT] transformer le xml en binaire via une xslt
    Par chama dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/07/2005, 12h42

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