|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
bonjour,
je suis en train de parsser un xml avec simplexml de la forme: Code XML :
le hic est que le fichier xml est trop volumineux,et je veut l'afficher en html avec une pagination de 10 noeud par page tout en introduisant certain caractere qui sont passer en parametre : par exemple je veu afficher les voitures de couleur rouge. j essayer cela: Code :
|
||||
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Pour la pagination soit vous ajoutez des tests supplémentaires dans votre expression XPath sur la position (fonction position(), voir ce sujet) ou alors vous ajoutez des tests dans la boucle de sorte à sauter les N premières voitures puis à parcourir les X voitures qui vous intéressent et enfin vous arrêtez la boucle (mot clé break : inutile de parcourir le reste).
|
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
j essayer cette expression de xpath:
$article->xpath("//voiture[position()>=5 and position()<15 and //voiture[couleur='rouge']") mai ca rien donner!!! |
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Votre expression XPath n'est pas correcte :
Code X :
//voiture[couleur='rouge' and position()>=5 and position()<15] |
|
|
00
|
|
|
#5 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
j'ai modifié mon xml sous cette structure:
Code XML :
comment faire? j 'essayer ca : Code :
|
||||
|
|
00
|
|
|
#6 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Les expressions XPath n'étaient pas correctes (voilà votre code remis en forme
) :Code :
|
||
|
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
merci beaucoup julp pour ton coup de main,ca marche a merveille
|
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
je revient a vous,
desolé je me suis emporté un peu,mais le code ci dessus presente des erreurs. si je veux chercher la deuxieme ville (lyon) et non la premiere, le resultat sera vide!,comment faire afin de parcourir tous les noeuds "unprix" pour savoir c lyon existe ou pas |
|
|
00
|
|
|
#9 | ||||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si vous souhaitez parcourir toutes les balises <unprix> :
Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
je rectifié un peu le tir.
je voudrais parcourir toutes les balises <unprix> afin de tester c la ville de depart (ville_dep) dans notre cas "paris" (ou autre) est existante afin d'afficher tous les details de produit, est non pas d'afficher d'aficher tous ces dates de depart. |
|
|
00
|
|
|
#11 | |||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#12 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
c ca le probleme c que l'expression xpath ne me permet pa de boucler sur tous les balises <unprix> pour voir c ce produit contient mon ville de depart ou non, elle me permet de tester sur la premiere balise est ca sa cause un probleme, voici un exemple :
prenat ce bout de code Code XML :
donc il me faut une expression ki me permet de parcourir tous les balises de chaque produit afin de verifier c mon ville de depart existe bien(quelque soit son niveau). |
||
|
|
00
|
|
|
#13 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
J'ai beau essayer et rééssayer j'en arrive toujours au même résultat. J'ai même écrit un programme en C pour tester l'expression et quelque soit la position de ville_dep valant paris, il est pris en compte. A moins que la structure de votre document ne corresponde pas à la mienne ou que paris soit écrit autrement (majuscules ou blancs).
|
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
tu as le meme resultat car paris existe bien dans tous (ou presque)l es produits
essai avec lyon par exmple.et tu va voir la difference |
|
|
00
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
et je t'assure que la structure de mon document c la meme montrée ci dessus, ainsi le nom de la ville exacte
|
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
Ta raison julp cette expression « xpath(utf8_encode("//produit[position()>=$debut_pos and position()<$fin_pos and prix/unprix/ville_dep=paris']")) » est juste.
Mais elle engendre un autre problème ; supposant que je vais afficher tous les produits qui ont ville de depart « paris », tout en gardant l’affichage de 10 produits par page. Est que dans mon fichier xml les 9 premiers produits ont une ville de départ autre que paris ,tan disque que le reste des produits ont une ville de part paris, cette expression xpath va m’afficher 1 seule produit dans la première page, est le reste des pages va être afficher correctement (car tous ont une ville_dep=paris) or je veux afficher 10 par page qui ont comme critere de recherche ville_dep=paris. |
|
|
00
|
|
|
#17 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
J'ai fait une erreur sur position() suite aux différentes modifications et mon échantillon XML étant très sommaire il ne m'a pas permis de m'en rendre compte lors de mes tests :
Code :
$produits = $document->xpath(utf8_encode("//produit[prix/unprix/ville_dep='lyon'][position()>=$debut_pos and position()<$fin_pos]")); |
|
|
00
|
|
|
#18 |
|
Candidat au titre de Membre du Club
![]() Inscription : janvier 2006 Messages : 109 ![]() |
je le te confirme cher julp, ton hypothèse es t vraie.
Merci beaucoup pour ton coup de main. Ça marche nickel comme j l’espérer.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com