Mise en forme avec XSL
david.bianchini
-
david.bianchini -
david.bianchini -
Salut!
J'ai 1 pb de mise en forme de mon doc Xml avec une feuille Xsl.
Mon fichier .xml a à peu près cette gueule:
<ITEM>
<TITRE-ITEM/>
<TEXTE>
<EXEMPLE/>
<INFOBULLE/>
</TEXTE>
<PARAGRAPHE>
<TITRE-P/>
<TEXTE>
<EXEMPLE/>
<INFOBULLE/>
</TEXTE>
<PARTIE>
<TITRE-PARTIE/>
<TEXTE>
... etc
</ITEM>
Jusque là, rien de bien compliqué.
Sauf que je voudrais que les données texte contenues dans les
sous-éléments "EXEMPLE" et "INFOBULLE" s'affichent différemment que celles contenus dans "TEXTE" (l'élément parent donc).
Ca marche très bien avec une CSS, mais j'y arrive pas avec Xsl.
Est-ce que je dois utiliser les templates, for-each ...?
Merci!
J'ai 1 pb de mise en forme de mon doc Xml avec une feuille Xsl.
Mon fichier .xml a à peu près cette gueule:
<ITEM>
<TITRE-ITEM/>
<TEXTE>
<EXEMPLE/>
<INFOBULLE/>
</TEXTE>
<PARAGRAPHE>
<TITRE-P/>
<TEXTE>
<EXEMPLE/>
<INFOBULLE/>
</TEXTE>
<PARTIE>
<TITRE-PARTIE/>
<TEXTE>
... etc
</ITEM>
Jusque là, rien de bien compliqué.
Sauf que je voudrais que les données texte contenues dans les
sous-éléments "EXEMPLE" et "INFOBULLE" s'affichent différemment que celles contenus dans "TEXTE" (l'élément parent donc).
Ca marche très bien avec une CSS, mais j'y arrive pas avec Xsl.
Est-ce que je dois utiliser les templates, for-each ...?
Merci!
A voir également:
- Mise en forme avec XSL
- Mise en forme conditionnelle excel - Guide
- Mise en forme tableau croisé dynamique - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise en forme whatsapp - Guide
1 réponse
Et bien pour te repondr, tu peux effectivement utiliser des "templates" ainsi que des "for-each" :
Les "for-each" pour boucler TEXTE et les "templates" pour rediriger les traitement différent pour l'affichage des elements EXEMPLE et INFOBULLE.
Est-ce que tu as commence a faire un bout de code xsl... je pourrai t'aider si tu le souhaite...
Te faire une ptite demo sinon...
Br@scoo
Les "for-each" pour boucler TEXTE et les "templates" pour rediriger les traitement différent pour l'affichage des elements EXEMPLE et INFOBULLE.
Est-ce que tu as commence a faire un bout de code xsl... je pourrai t'aider si tu le souhaite...
Te faire une ptite demo sinon...
Br@scoo
Voilà ce que ça donne:
<xsl:template match="/">
<SPAN STYLE="display:block; text-transform:uppercase; font- family:verdana; font-size:12pt; font-weight:bold;
color=#0000CC; margin-left:250pt; margin-bottom:50pt">
<xsl:value-of select="ITEM/TITRE-ITEM"/>
</SPAN>
<xsl:apply-templates select="ITEM/PARAGRAPHE"/>
</xsl:template>
<xsl:template match="PARAGRAPHE">
<SPAN STYLE="display:block; margin-top:20pt; margin-
bottom:20pt; margin-left:3pt; font-family:verdana; font-
weight:bold; font-size:12pt; color=#0000CC">
<xsl:value-of select="TITRE-P"/>
</SPAN>
<xsl:apply-templates select="TEXTE"/>
<xsl:for-each select="PARTIE">
<SPAN STYLE="display:block; margin-top:20pt; margin-
bottom:20pt; font-family:verdana; font-weight:bold; font-
size:10pt; color=#0000CC">
<xsl:value-of select="TITRE-PARTIE"/>
</SPAN>
<xsl:apply-templates select="TEXTE"/>
<xsl:for-each select="SS-PARTIE">
<SPAN STYLE="display:block; margin-top:20pt; margin-
bottom:17pt; margin-left:3pt; font-family:verdana; font-
weight:bold; font-size:9pt; color=#0000CC">
<xsl:value-of select="TITRE-SS-PARTIE"/>
</SPAN>
<xsl:apply-templates select="TEXTE"/>
<xsl:for-each select="GRAIN">
<SPAN STYLE="display:block; margin-top:12pt; margin-left:3pt; font-family:verdana; font-weight:bold; font-size:8pt; color=#0000CC">
<xsl:value-of select="TITRE-GRAIN"/>
</SPAN>
<xsl:apply-templates select="TEXTE"/>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
<xsl:template match="TEXTE">
<SPAN STYLE="display:block; margin-top:10pt; font-family:verdana;
font-size:8pt">
<xsl:value-of select="."/>
</SPAN>
</xsl:template>
<xsl:template match="INFOBULLE">
<SPAN STYLE="color=#0000CC; font-weight:bold">
<xsl:value-of select="."/>
</SPAN>
</xsl:template>
</xsl:stylesheet>
______________________________________________________
Voilà. C'est pas correct, vu que mon template "INFOBULLE" me sert à rien ici.
Mais tout mon pb est là!