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 27/06/2007, 14h18   #1
Modérateur
 
Avatar de blueice
 
Inscription : mars 2003
Messages : 3 422
Détails du profil
Informations personnelles :
Âge : 37
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : mars 2003
Messages : 3 422
Points : 4 110
Points : 4 110
Envoyer un message via ICQ à blueice Envoyer un message via MSN à blueice Envoyer un message via Skype™ à blueice
Par défaut [SimpleXML] Compter le nombre d'éléments

Salut,

Je suis un peu en galère, je vais vous expliquer ce que je veux.
Je voudrais à partir de fichiers xml, afficher des tableaux en PHP avec simplexml.
Mon fichier xml d'exemple :
Code xml :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?xml version="1.0" encoding="UTF-8"?>
<racine>
<tableau>
	<produit>
		<quantite>250</quantite>
		<price>100</price>
		<price>150</price>
		<price>200</price>
	</produit>
	<produit>
		<quantite>500</quantite>
		<price>200</price>
		<price>250</price>
		<price>300</price>
	</produit>
</tableau>
</racine>

Ensuite je voudrais afficher un tableau de la sorte (cf capture en pièce jointe)

J'ai commencé à faire une fonction basique mais qui n'affiche pas correctement les prix.
MON PROBLÈME réside dans le nombre de <price> qui est variable selon le fichier xml.

Donc je suis ouvert à toute suggestion.
Est-ce que l'architecture de mon fichier xml est bonne, à vous de me dire ?
En y réfléchissant, je crois que non , un produit possède une quantité et différents prix selon des options, comme sur ce tableau par exemple.

Merci d'avance
Images attachées
Type de fichier : jpg capture.jpg (12,0 Ko, 6 affichages)
__________________
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
Pensez également à cocher

Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

Dimension Internet - Carnet Web
Imprimerie Nice
blueice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2007, 14h43   #2
Membre Expert
 
Inscription : septembre 2006
Messages : 1 466
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 1 466
Points : 1 593
Points : 1 593
Je connais pas SimpleXml, mais tu fais du DOM, ou du XSLT avec?
Dans les deux cas, ça me semble pas trop dur d'avoir la somme par produit distinct.
Morbo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2007, 18h15   #3
Membre du Club
 
Inscription : mars 2003
Messages : 68
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 68
Points : 67
Points : 67
ton xml est bon, pour aller faire une action sur un ensemble je te conseil par XPATH.

avec une expression $Total = $xml->xpath("sum(./price)");

par contre je me souviens plus si il faut ./ avant le price.
Il faut être déjà ici dans le sous noeud produit, avec un foreach.

pour les différentes fonctions possible avec xpath que je trouve vraiment très très pratique, je ne peut que te conseiller d'aller voir ici http://xmlfr.org/w3c/TR/xpath/
martel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2007, 00h27   #4
Membre confirmé
 
Avatar de zulad
 
Inscription : juin 2007
Messages : 500
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 500
Points : 289
Points : 289
math:count() d'exslt devrait faire l'affaire.
zulad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/06/2007, 09h05   #5
Membre du Club
 
Inscription : mars 2003
Messages : 68
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 68
Points : 67
Points : 67
@Zulad : je ne vois pas pourquoi tu veux lui donner le nombre ? a moins qu'il en aie vraiment besoin, mais si c'est pour parcourir dans une boucle autant de fois qu'il y a de <price>, suffit de faire comme suit :

Code :
1
2
3
4
5
6
7
8
 
 <?php foreach ($xml->price as $value) {
  echo 	"<tr><td>";
  echo $value->price;
  echo "</td>";
  echo "</td>";
}
?>
il faut bien sur avoir fait un xpath avec le chemin des prices.
martel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2007, 19h17   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Citation:
Envoyé par martel
@Zulad : je ne vois pas pourquoi tu veux lui donner le nombre ? a moins qu'il en aie vraiment besoin, mais si c'est pour parcourir dans une boucle autant de fois qu'il y a de <price>, suffit de faire comme suit :

Code :
1
2
3
4
5
6
7
8
 
 <?php foreach ($xml->price as $value) {
  echo     "<tr><td>";
  echo $value->price;
  echo "</td>";
  echo "</td>";
}
?>
il faut bien sur avoir fait un xpath avec le chemin des prices.
Salut

Je pense que tu voulais dire :
Code :
foreach ($xml->produit as $value)
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2007, 10h20   #7
Membre du Club
 
Inscription : mars 2003
Messages : 68
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 68
Points : 67
Points : 67
oui merci
martel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2007, 13h11   #8
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par blueice
Est-ce que l'architecture de mon fichier xml est bonne, à vous de me dire ?
En y réfléchissant, je crois que non , un produit possède une quantité et différents prix selon des options, comme sur ce tableau par exemple.
je n'aime pas trop le format de ton fichier XML parce qu'on se sait pas à quelles options correspondent les prix
__________________
Modérateur PHP
mathieu 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 16h40.


 
 
 
 
Partenaires

Hébergement Web