Bonjour à tous,
j'ai le probleme suivant :
j'ai un fichier XML ( evidement ! ) dont la teneur est la suivante :
<root>
<Beta_Law>
<Leaf>
<a>1</a>
<b>1</b>
<Te0>1</Te0>
<Te1>1</Te1>
<Te2>1</Te2>
<Te3>1</Te3>
<Te4>1</Te4>
<Te5>1</Te5>
<Te6>1</Te6>
<Te7>1</Te7>
<Te8>1</Te8>
<Te9>1</Te9>
</Leaf>
<Petiol>
<a>1</a>
<b>1</b>
<Te0>1</Te0>
<Te1>1</Te1>
<Te2>1</Te2>
<Te3>1</Te3>
<Te4>1</Te4>
<Te5>1</Te5>
<Te6>1</Te6>
<Te7>1</Te7>
<Te8>1</Te8>
<Te9>1</Te9>
</Petiol>
<Internode>
<a>1</a>
<b>1</b>
<Te0>1</Te0>
<Te1>1</Te1>
<Te2>1</Te2>
<Te3>1</Te3>
<Te4>1</Te4>
<Te5>1</Te5>
<Te6>1</Te6>
<Te7>1</Te7>
<Te8>1</Te8>
<Te9>1</Te9>
</Internode>
<Ffl>
<a>1</a>
<b>1</b>
<Te0>3</Te0>
<Te1>3</Te1>
<Te2>3</Te2>
<Te3>3</Te3>
<Te4>3</Te4>
<Te5>3</Te5>
<Te6>3</Te6>
<Te7>3</Te7>
<Te8>3</Te8>
<Te9>3</Te9>
</Ffl>
<Mfl>
<a>1</a>
<b>1</b>
<Te0>3</Te0>
<Te1>3</Te1>
<Te2>3</Te2>
<Te3>3</Te3>
<Te4>3</Te4>
<Te5>3</Te5>
<Te6>3</Te6>
<Te7>3</Te7>
<Te8>3</Te8>
<Te9>3</Te9>
</Mfl>
</Beta_Law>
</root>
Précisions :
le nombre d'organe donc de balise de type (Leaf, Petiol,Internode...) correspond à un nombre variable d'organe sur une plante.
Il y aura toujours <a> et <b> mais le nombre de <Tex> est variable (Ici Te0 à Te9).
Et je voudrais le representer sur une page HTML sous forme d'un tableau double entrée qui aurait l'allure suivante, à l'aide d'une transformation XSLT :
Donne avec IE ou FireFox...:
Parametre Leaf Petiol Internode Ffl Mfl
a 1 1 1 1 1
b 1 1 1 1 1
Te0 1 1 1 1 1
Te1 1 1 1 1 1
Tei 1 1 1 1 1
TeN-1 1 1 1 1 1
TeN 1 1 1 1 1
Par le code HTML suivant :
<html>
<table>
<tr>
<th>Parametre</th>
<th>Leaf</th>
<th>Petiol</th>
<th>Internode</th>
<th>Ffl</th>
<th>Mfl</th>
</tr>
<tr>
<td>a</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>b</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>Te0</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>Te1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>Tei</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>TeN-1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>TeN</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</table>
</html>
Voila si vous pouvez m'aidez d'une quelconque manière ce serait fort aimable.
après acharnement :
ceci marche sous IE (6.0.2900) mais pas sous FireFox !
Donc je présume que je dois faire un truc qui marche pas...
Est ce que quelqu'un aurait une idée pour que ça marche sous firefox
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlnssl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
method="html"
version="4.0"
encoding="ISO-8859-1"/>
<xsl:template match="/">
<html>
<br />
<br />
<body>
<xsl:call-template name="LoiBeta" />
</body>
</html>
</xsl:template>
<xsl:template name="LoiBeta">
<h3>
Loi Bêta :
</h3>
<table border="1" cellspacing = "0" width="90%">
<tr align = "left">
<th>
Paramètres
</th>
<xsl:for-each select="new_output/Beta_Law/node()">
<th>
<xsl:value-of select = "name(self::node())"/>
</th>
</xsl:for-each>
</tr>
<xsl:call-template name = "ligneTabLoiBeta"/>
</table>
</xsl:template>
<xsl:template name = "ligneTabLoiBeta">
<xsl:for-each select="/new_output/Beta_Law/Leaf/*">
<xsl:variable name= "var1" select="name(.)"/>
<tr>
<td>
<xsl:value-of select = "$var1"/>
</td>
<td>
<xsl:value-of select = "self::node()"/>
</td>
<xsl:for-each select="parent::node()/following-sibling::node()">
<td>
<xsl:value-of select = "self::node()/*[name() = $var1]"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
merci d'avance
Partager