From: Arnaud Malguy (Arnaud.Malguy@xps-pro.com)
Date: 13/09/2001 - 16:14
Pour un pb de ce type, il est possible de traiter les débuts et fin de
balise de manière indépendante avec xsl:text.
Je n'ai pas le tps de te donner la réponse complète mais pour générer un td
englobant les P entre deux H1 tu peux essayer
ce qui suit
<xsl:template match="h1">
<!-- fin du td précédent si ce n'est pas le 1er h1 -->
<xsl:if test="not(preceding-sibling::h1)">
<xsl:text></td></xsl:text>
<xsl:if>
<!-- Transo H1 en td -->
...
<!-- bedut du td englobant les P de ce h1 -->
<xsl:text><td></xsl:text>
</xsl:template>
C'est un peu barbare, je l'avoue, mais si les performances sont importants
pour toi, c'est utile.
Arnaud
Marc CHANTREUX wrote:
> Salut a tous,
>
> J'aimerais transformer un doc xhtml en doc html comme suit :
>
> <h1>C1</h1>
> <p>p1</p>
> <p>p2</p>
> <p>p3</p>
>
> <h1>C2</h1>
> <p>p4</p>
> <p>p5</p>
> <p>p6</p>
>
> devient :
>
> <table>
> <tr>
> <td>C1</td>
> <p>p1</p>
> <p>p2</p>
> <p>p3</p>
> <td>
> </td>
> <td>C2</td>
> <td>
> <p>p4</p>
> <p>p5</p>
> <p>p6</p>
> </td>
>
> </tr>
> </table>
>
> Dans ma feuille de style, j'avais écris la chose suivante :
>
> <xsl:template match="xhtml:h1">
> <table width="100%" cellspacing="0">
> <tr bgcolor="black">
> <td width="83"> </td>
> <td><font color="white"><xsl:value-of
> select="."/></font></td>
> </tr>
> <tr>
> <td width="83"> </td>
> <td>
> <xsl:param name="in_sect" select="true()" />
> <xsl:for-each select="following-sibling::*" >
> <xsl:param name="is_h1" select="name() = 'h1'"
> />
> <xsl:if test="name() = 'h1'" >
> <xsl:param name="in_sect"
> select="false()" />
> </xsl:if>
> <xsl:if test="$in_sect" >
> <xsl:apply-templates select="." />
> </xsl:if>
> </xsl:for-each>
> </td>
> </tr>
> </table>
> </xsl:template>
>
> Ca ne peut pas fonctionner car "une variable est constante" (dixit vdl).
>
> Dans les archives de la liste, il est noté qu'on peut contourner le pb
> en appellant un template de facon recursive. comme j'appelle
> following-sibling dans ce template, le traitement va vite devenir
> monstreux. Est ce que qq1 verrait une autre ecriture possible pour mon
> pb ?
>
> (il me semble avoir deja lu une problematique similaire sur cette liste
> mais je n'ai pas ete foutu de retrouver la chose dans l'archive)
>
> Marc
> -------------------------------------------------------------
> "Advancing technology is not as important as fighting for
> freedom, but it's still a good thing to do."
> Richard M. Stallman
> khatar@phear.org
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
> Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
> Cette liste est a votre disposition pour discuter en francais de
> tout sujet technique lie a XML.
>
> Pour resilier votre abonnement, envoyez un message contenant
> la commande "unsubscribe" a xml-tech-request@xmlfr.org
> (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|