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@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)
>
>---------------------------------------------------------------------------------------
>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@exselt.com - http://www.exselt.com
04 76 17 09 40 / 06 88 57 27 08
--
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)
Received on Tue Sep 5 13:10:08 2006