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];
$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];
// é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... <?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
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"/>
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.............
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...
<?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
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!!!!!!!!!!