logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: transformation XSL pour un tableau HTML à lignes et colonnes illmitées: msg#00005

Subject: Re: transformation XSL pour un tableau HTML à lignes et colonnes illmitées
Salut Sam

Ce xslt devrait convenir :


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
<xsl:output 
                      method="html"
                      version="4.0"
                      encoding="ISO-8859-1"/>
<xsl:template match="/">
<html>
    <h3>
    Cerne :
    </h3>
   
        <table border="1" cellspacing = "0" width="90%">
        <xsl:apply-templates select = 
"new_output/Layers/NewLine[position()=last()]"/>
        <xsl:apply-templates select =  "new_output/Layers/NewLine"/>
        </table>
   
</html>
</xsl:template>

<xsl:template match="NewLine[position()=last()]">
    <tr x="x">
        <xsl:apply-templates select="UC" />
        <xsl:for-each select="UC">
            <td>
                <xsl:value-of select="@number"/>
            </td>
        </xsl:for-each>
    </tr>
</xsl:template>

<xsl:template match="NewLine">
    <tr>
    <td>
        <xsl:value-of select = "Cycle"/>
    </td>
        <xsl:apply-templates select="UC" />
     </tr>
</xsl:template>

<xsl:template match="UC">
        <td>
            <xsl:value-of select="Diam"/>
        </td>
</xsl:template>

</xsl:stylesheet>

Cordialement,

Stéphane.

samy sayag wrote:

>  Bonjour à tous,
>j'ai le probleme suivant que je n'ai que partiellement resolu.
>
>En partant de ce fichier XML :
>
><?xml versionfiltered="1.0" encoding="ISO-8859-1"?>
><?xml-stylesheet type="text/xsl" href="cerne.xsl"?>
><new_output>
>
>    <NewLine>
>        <Cycle>1</Cycle>
>        <UC number="1">
>            <Length>0.10355</Length>
>            <Diam>1.15532</Diam>
>        </UC>
>    </NewLine>
>    <NewLine>
>        <Cycle>2</Cycle>
>        <UC number="1">
>             <Length>0.131077</Length>
>            <Diam>1.30362</Diam>
>        </UC>
>        <UC number="2">
>            <Length>0.0879626</Length>
>            <Diam>1.06658</Diam>
>        </UC>
>    </NewLine>
></Layers>
></new_output>
>
>sachant donc que le nombre d'UC par NewLine n'est pas a priori limité et le 
>nombre de cycle non plus. 
>
>J'ai écrit cette transformation xsl qui ne marche pas entierement:
>
><?xml versionfiltered="1.0" encoding="ISO-8859-1"?>
><xsl:stylesheet versionfiltered="1.0" 
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
><xsl:output  
>                      method="html"
>                      versionfiltered="4.0"
>                      encoding="ISO-8859-1"/>
><xsl:template match="/">
><html>
>    <h3>
>    Cerne :
>    </h3>
>    
>        <table border="1" cellspacing = "0" width="90%">
>        <xsl:apply-templates select = 
> "child::new_output/Layers/NewLine[position()=last()]"/>
>        <xsl:apply-templates select =  "child::new_output/Layers/NewLine"/>
>        </table>
>    
></html>
></xsl:template>
>
><xsl:template match="child::new_output/Layers/NewLine[position()=last()]">
>    <tr>
>        <xsl:for-each select="UC/@number">
>            <td>
>                <xsl:value-of select="."/>
>            </td>
>        </xsl:for-each>
>    </tr>
></xsl:template>
>
><xsl:template match="child::new_output/Layers/NewLine">
>    <tr>
>        <xsl:call-template name="NouveauCycle" />
>     </tr>
></xsl:template>
>
><xsl:template name="NouveauCycle">
>    <td>
>        <xsl:value-of select = "Cycle"/>
>    </td>
>    <xsl:for-each select="UC">
>        <td>
>            <xsl:value-of select="Diam"/>
>        </td>
>    </xsl:for-each>
></xsl:template>
>
></xsl:stylesheet>
>
>le but étant d'obtenir ce html à la fin (il reprend les valeurs du XML) :
><html>
>
><table border="1" cellspacing = "0" width="90%">
><tr>
>    <td>
>    colonne:UC
>    <br>
>    lingnes : cycle
>    </td>
>     <td>
>    1
>    </td>
>    <td>
>    2
>    </td>
></tr>
><tr>
>    <td>
>    1
>    </td>
>    <td>
>    1.15532
>    </td>
>
></tr>
><tr>
>    <td>
>    2
>    </td>
>    <td>
>    1.30362
>    </td>
>    <td>
>    1.06658
>    </td>
></tr>
></table>
>
></html>
>
>Ici je recupère des valeur de diamètre et j'espère pouvoir répeter l'opération 
>pour des longueurs
>Le problème vient du "for each" qui ne recupère pas les valeur des attributs 
>comme je le desire.
>Voilà j'espère  avoir donné assez d'infos. 
>Merci d'avance.
>
>sam
>               
>---------------------------------
> Découvrez un nouveau moyen de poser toutes vos questions quelque soit le 
> sujet ! Yahoo! Questions/Réponses pour partager vos connaissances, vos 
> opinions et vos expériences. Cliquez ici. 
>
>--
>Devenez redacteur <XML>fr et contribuez au developpement du
>xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
>Liste de diffusion "xml-tech@xxxxxxxxx" (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@xxxxxxxxx
>(mailto:xml-tech-request@xxxxxxxxx?Subject=unsubscribe)
>
>---------------------------------------------------------------------------------------
>Orange vous informe que cet  e-mail a ete controle par l'anti-virus mail. 
>Aucun virus connu a ce jour par nos services n'a ete detecte.
>
>
>  
>


-- 
   Stéphane Bonhomme           --           Exselt Services

Formations, Conseil et Réalisations en Ingénierie Documentaire,
            Technologies Web et Logiciels Libres
     stephane@xxxxxxxxxx   -   http://www.exselt.com
        04 76 17 09 40        /      06 88 57 27 08 




<Prev in Thread] Current Thread [Next in Thread>