Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/02/2008, 13h01   #1
Invité de passage
 
Inscription : novembre 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 19
Points : 2
Points : 2
Par défaut [SimpleXML] Contrôler l'affichage des produits

Bonjour,


Je souhaiterais pouvoir contrôler le nombre de produits à afficher à partir d'une boucle for.

Dans mon exemple, j'ai définis i à 8 alors et le flux ne contient que 4 éléments et lorsqu'un élément n'est pas présent j'ai des éléments vide qui apparaissent.

Vous pouvez voir le résultat à cette adresse :

http://fleurs.ducoo.com/index.php5


Code :
1
2
3
4
5
6
7
8
9
10
11
<?php 
$xml = simplexml_load_file('flux.xml');
for($i=0; $i<=8; $i++) {
echo '<div class="bouquet">';
echo '<ul><li class="title"><a href="'.$xml->product[$i]->productURL.'" rel="nofollow">'.utf8_decode((string)$xml->product[$i]->name).'</a></li></ul>';
echo '<a href="'.$xml->product[$i]->productURL.'" rel="nofollow">'.'<img src="'.$xml->product[$i]->image150URL.'"></a>';
echo '<ul><li class="prix">'.$xml->product[$i]->price.' €</li>';
echo '<li class="acheter"><a href="'.$xml->product[$i]->productURL.'" rel="nofollow">'.'Acheter</a></li>';
echo '</ul></div>';
}
?>
antitrust56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 14h03   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
SimpleXML vous permet de savoir à la fois combien d'éléments dispose un noeud (fonction count) et si un élément est défini ou non (fonction isset).

Par conséquent, une instruction telle que :
Code :
for($i=0; $i <= min(count($xml->product), 8); $i++) {
pourrait suffire ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 14h14   #3
Invité de passage
 
Inscription : novembre 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 19
Points : 2
Points : 2
Ca marche parfaitement merci.

Juste une petite question, comment gérerais tu le fait de créer des pages suivantes selon un nombre x d'éléments ?
antitrust56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 17h11   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Ça dépend de la structure du document : les cas les plus triviaux permettent l'utilisation d'une boucle for (ou semblable) sinon vous pouvez parfaitement compter sur une expression XPath.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h38.


 
 
 
 
Partenaires

Hébergement Web