[XSLT] Comment créer une boucle
Bonjour à tous !!!
Le titre est trés mal choisi, mais j'ai du mal a définir mon probléme (et donc à en trouver une solution ^^)
Alors voila, j'ai voulu faire un systeme d'affichage de news passant par le couple xml / xsl : le PHP redige le xml, qui est ensuite traité avec le xsl.
Cela fonctionne presque à un détail prés, rendant tout le code inutilisable : au lieu de "lister" et de repeter seulement les news, le xsl repete toute la page a chaque news.
Voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="index/News">
<html>
<head>
<title>Exemple de sortie HTML</title>
<link rel="alternate" type="application/rss+xml" title="Test flux RSS" href="fluxrss.xml" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<div id="News">
<h3>
<!--Garder les liens sous cette forme, cela permet d'acceder a la news de maniere individuel -->
<a href="news.php?news_id={id-news}">
<xsl:copy-of select="Titre"/>
</a>
<em>
date : <xsl:copy-of select="Date"/>
</em>
</h3>
<p>
Description : <xsl:copy-of select="Description" />
</p>
Contenu :
<xsl:copy-of select="Contenu"/>
</div>
</body>
</html></xsl:template>
</xsl:stylesheet> |
Si quelqu'un pouvait m'expliquer ce qui deconne et que faire pour y remedier, ca serait trés gentil :yaisse2:
EDIT :
Dans le doute, j'ajoute le code du php qui genere mon xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
<?php
header("Content-Type: text/xml");
echo "<?xml version='1.0' encoding=\"iso-8859-1\"?>";
echo "<?xml-stylesheet type=\"text/xsl\" href=\"indexnews.xsl\"?>";
echo "<index>";
mysql_connect("localhost", "****", "****");
mysql_select_db("*****");
$reponse = mysql_query('SELECT * FROM ***** WHERE validation = 1 ORDER BY id DESC LIMIT 0, 10 ');
while ($donnees = mysql_fetch_array($reponse) )
{
echo "<News>";
echo "<id-news>" . $donnees['id'] . " </id-news>";
echo "<Titre>" . stripslashes($donnees['titre']) . "</Titre>";
echo "<Date>" . date('d-m-Y', $donnees['date']) . "</Date>";
echo "<Description>" . stripslashes($donnees['description']) . "</Description>";
echo "<Contenu>" . stripslashes($donnees['contenu']) . "</Contenu>";
echo "</News>";
}
echo "</index>";
mysql_close();
?> |