affichage xml avec xsl

affichage xml avec xsl - XML/XSL - Programmation

Marsh Posté le 08-07-2006 à 16:09:53    

bonjour...
suite à la création d'une petit base de données...  
un AUTEUR 'tbl_auteur' qui REALISE 'tbl_réalise' un DOCUMENT 'tbl_document'
j'exécute la requete et génère une page xml comme suit...
<?php
// édition du début du fichier XML
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
$xml .= '<channel>';  
$xml .= '<title>Essai sur table auteur</title>';
$xml .= '<link>localhost</link>';
$xml .= '<description>Flux RSS des auteurs</description>';
$xml .= '<?xml-stylesheet type="text/xsl" href="flux_rss_rq1.xsl"?>';
 
// connexion a la base
@mysql_connect('localhost','root','') or die("Connexion impossible" );
@mysql_select_db('refdoc') or die("Echec de selection de la base" );
 
// selection
$res=@mysql_query("SELECT distinct
   a.id as ida,  
   a.idlibelle as idliba,
   a.nom as nom,  
   a.prenom as prenom,
   a.mail as email,  
   p.id as idp,  
   p.libelle_prof as libp
   FROM tbl_auteur a  
   left join tbl_prof p on p.id=a.idlibelle
   " );  
   
// extraction des informations et ajout au contenu
while($tab=@mysql_fetch_array($res))
{    
 $nom=$tab[nom];
 $prenom=$tab[prenom];
 $email=$tab[email];
 $libp=$tab[libp];
 $idauteur=$tab[ida];
 
 $xml .= '<item>';
 $xml .= '<auteur>';
 $xml .= '<nom>'.$nom.'</nom>';
 $xml .= '<prenom>'.$prenom.'</prenom>';  
 $xml .= '<email>'.$email.'</email>';
 $xml .= '<libp>'.$libp.'</libp>';
 $xml .= '</auteur>';
 
 $res2=@mysql_query("SELECT
   r.ida as idar,  
   r.idd as iddr,  
   b.id as idb,  
   b.titre as titre,  
   b.fichier_name as fich,  
   b.date_conf as datec,
   b.lieu_conf as lieuc
   FROM tbl_document b
   inner join tbl_realise r on b.id=r.idd
   where r.ida=".$idauteur."
   " );  
   while($tab2=@mysql_fetch_array($res2))
   {  
   $titre=$tab2[titre];
   $fich=$tab2[fich];
   $datec=$tab2[datec];
   $lieuc=$tab2[lieuc];
 
   $xml .= '<document>';
   $xml .= '<titre>'.$titre.'</titre>';
   $xml .= '<fich>'.$fich.'</fich>';
   $xml .= '<datec>'.$datec.'</datec>';
   $xml .= '<lieuc>'.$lieuc.'</lieuc>';
   $xml .= '</document>';
   }
 $xml .= '</item>';
   
}
 
// édition de la fin du fichier XML
$xml .= '</channel>';
$xml .= '</rss>';
 
// écriture dans le fichier
$fp = fopen("flux_rss_rq2.xml", 'w+');
fputs($fp, $xml);
fclose($fp);
@mysql_close();
 
?>

jusque là, tout va bien, j'obtiens la page xml suivante... :pt1cable:  
<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0"><channel><title>Essai sur table auteur</title><link>localhost</link><description>Flux RSS des auteurs</description><?xml-stylesheet type="text/xsl" href="flux_rss_rq1.xsl"?>
<item>
   <auteur>
     <nom>Smith</nom>
     <prenom>Daniel</prenom>
     <email>daniel.smith@army.us</email>
     <libp>M.</libp>
   </auteur>
   <document>
     <titre>Army US</titre>
     <fich>MES_REQUETES.doc</fich>
     <datec>1969</datec>
     <lieuc>Les Deux Tours</lieuc>
  </document>
</item>
<item>
...
</item>
 
</channel></rss>

là tout va bien... l'affichage est bon  :D  
 
par contre mon XSL ne marche pas... :??:  
HELP
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="iso-8859-1" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
 
<xsl:template match="/">
<html>
<head>
 
<title>Auteur</title>
</head>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
 <title>Traitement XSL d'un flux XML</title>
  </head>
   <body>
    <xsl:for-each select="/item">
     <xsl:for-each select="/item/auteur">
     <ul>
     <li>Auteur:
     <xsl:apply-templates select="/item/auteur/libp"/>
     <xsl:apply-templates select="/item/auteur/nom"/>
     <xsl:apply-templates select="/item/auteur/prenom"/>
     <xsl:apply-templates select="/item/auteur/email"/>
     </li>
     </ul>
     <xsl:text>  </xsl:text>
      <xsl:for-each select="/item/document">
      <ul>
      <li>Document:
       <xsl:apply-templates select="/item/document/titre"/>
       <xsl:apply-templates select="/item/document/fich"/>
       <xsl:apply-templates select="/item/document/datec"/>
       <xsl:apply-templates select="/item/document/lieuc"/>
      </li>
      </ul>
      <xsl:text>  </xsl:text>
      </xsl:for-each>
     </xsl:for-each>
    </xsl:for-each>
   </body>
  </html>
 </xsl:template>
</xsl:stylesheet>

 
Alors mon souci est que je dois l'afficher de manière à obtenir les auteurs et en dessous tous leurs documents...
la requete est bonne le XML aussi
mais j'arrive pas à utiliser le XSL
 
sous mozilla... il le met tout à la suite... mais c automatique
sous IE... il met que un XML sans aucun style.............
 
PLEASE HELP ME!!!!!!!!!!

Reply

Marsh Posté le 08-07-2006 à 16:09:53   

Reply

Marsh Posté le 08-07-2006 à 16:16:48    

Je crois que c'est la mauvaise catégorie non? c'est hardware içi!

Reply

Marsh Posté le 08-07-2006 à 17:31:37    

oui désolé...je l'ai remis aillleurs... lol

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed