bonjour a tous et toutes
mon initiation a XML/XSL se trouve bloquer par un probleme de passage de parametre a la fonctions xsl:sort...
je m'explique..
le code PHP qui suit genere une combinaison xml/xsl avec le passage d'un parametre (tri)
dans mon code XSL
le parametre $tri est bien reconnu dans le template name="livre" value-of...
mais la fonction <xsl:sort select="tri"> ne fonctionne pas...
apres de nombreuses recherches infructueuses sur differents forums et autres documentations, je n'ai pas trouver la solution...
si quelqu'un a une idée? une piste? je suis preneur..
merci d'avance.
Quatre
mon initiation a XML/XSL se trouve bloquer par un probleme de passage de parametre a la fonctions xsl:sort...
je m'explique..
le code PHP qui suit genere une combinaison xml/xsl avec le passage d'un parametre (tri)
<?php
$xsltproc = '/usr/bin/xsltproc';
$params = "--param tri \"'annee'\"";
$cmd = $xsltproc.' '.$params.' biblio.xsl liste.xml 2>&1';
exec($cmd,$array_res);
echo implode("\n",$array_res);
?>
dans mon code XSL
<?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="xml" encoding="ISO-8859-1" indent="yes"/>
<xsl:param name="tri"/>
<xsl:template match="/">
<html>
<head>
<title>Ma bibliotheque</title>
<meta content="Quatre" name="author" />
<link rel="stylesheet" href="biblio.css" type="text/css" />
</head>
<body>
<div class="entete">
<H1>MA BIBLIOTHEQUE</H1>
</div>
<div class="menu">
<xsl:call-template name="menu"/>
</div>
<div class="corps">
<table border="1" width="100%">
<tr>
<th>Auteur</th>
<th>Titre</th>
<th>Année</th>
<th>Editeur</th>
<th>Genre</th>
<th>ISBN</th>
</tr>
<xsl:call-template name="livre">
<xsl:with-param name="tri" select="$tri"/>
</xsl:call-template>
</table>
</div>
</body>
</html>
</xsl:template>
<xsl:template name="menu">
<ul>
<xsl:for-each select="/bibliotheque/menu/lien">
<li>
<a>
<xsl:attribute name="href">
<xsl:value-of select="url" />
</xsl:attribute>
<xsl:value-of select="intitule"/>
</a>
</li>
</xsl:for-each>
</ul>
</xsl:template>
<xsl:template name="livre">
<xsl:value-of select="$tri"/>
<xsl:for-each select="/bibliotheque/livre">
<xsl:sort select="tri" />
<tr>
<td>
<xsl:value-of select="auteur/prenom"/>
<xsl:text> </xsl:text>
<xsl:value-of select="auteur/nom"/>
</td>
<td>
<xsl:value-of select="titre"/>
</td>
<td>
<xsl:value-of select="annee"/>
</td>
<td>
<xsl:value-of select="editeur"/>
</td>
<td>
<xsl:value-of select="genre"/>
</td>
<td>
<xsl:value-of select="ISBN"/>
</td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
le parametre $tri est bien reconnu dans le template name="livre" value-of...
mais la fonction <xsl:sort select="tri"> ne fonctionne pas...
apres de nombreuses recherches infructueuses sur differents forums et autres documentations, je n'ai pas trouver la solution...
si quelqu'un a une idée? une piste? je suis preneur..
merci d'avance.
Quatre