Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML
XML Forum d'entraide sur XML avec PHP. Exemples : SimpleXML, OpenXML... Avant de poster -> FAQ XML, Cours XML et Sources XML
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 09/09/2008, 12h23   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 2
Points : 2
Par défaut Utilisation de SAX avec php

Bonjour,

Je fais appel à vous parce que je ne sais vraiment pas utilisé l'Api SAX. Pour parser un xml j'utilisais SimpleXML mais j'ai eu plusieurs problèmes de mémoire et je veux donc le faire avec SAX. Le souci est que sur internet, je ne trouve pas de tutoriel ou d'exemple assez satisfaisant par rapport à ce que je désire faire. J'aimerai que quelqu'un qui s'y connnaisse prenne contact avec moi ici pour que je lui pose des questions.
J'aimerai par exemple savoir entre autre comment récupérer les attributs des balises, inclure le parseur dans une fonction, mettre des conditions le parsing, comment faire pour éviter d'appeler plusieurs fois le parseur...

Merci d'avance.
thomas.r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 12h30   #2
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
bienvenue sur les forums de developpez.com 8)

Tu as regardé là http://php.net/xml ?

__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 12h35   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 2
Points : 2
Oui j'y suis allé plusieurs fois. Je l'ai lu en long et en large mais ça m'a l'air abstrait, il n'y a pas vraiment d'exemple complet et explicite. Est-ce que vous vous y connaissez personnellement ?
thomas.r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 12h51   #4
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Pas besoin de s'y connaitre... 'suffit de lire la doc

Il y a un example ici:
http://php.net/xml.examples

Est-ce que tu l'as testé sur ton flux xml ? Si non je t'invite urgemment à le faire...

Ensuite si tu décortiques le code, tu remarqueras qu'il y a une fonction de callback intéressante :
Code :
1
2
3
4
function startElement($parser, $name, $attrs) 
{
 ...
}
Le troisième argument devrait t'intéresser
__________________
Get your motor runnin'
Head out on the highway...
Mr N. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 14h08   #5
Invité de passage
 
Inscription : septembre 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 9
Points : 2
Points : 2
si je veux récupérer une partie des infos du xml et donc mettre des conditions sur les valeurs ou les attributs des balises dois je le faire dans la définition du parseur ? c'est à dire dans
Citation:
function startElement($parser, $name, $attrs)
{
...
}
par exemple ?
ou bien le faire avec le tableau qui contient tous les infos : d'après ce que j'ai compris on stocke les données dans des tableaux
thomas.r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/09/2008, 17h07   #6
Expert Confirmé Sénior
 
Avatar de Mr N.
 
Inscription : septembre 2004
Messages : 5 421
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 421
Points : 5 835
Points : 5 835
Je ne comprend pas trop ce que tu veux faire ni ce que tu veux dire, mais si tu compte extraire ton flux xml dans un tableau, puis travailler sur le tableau alors il n'y a aucun avantage à passer par sax...

Sinon si il y a des condition/traitements à effectuer lors du parse, oui c'est bien dans la callback startElement
Selon http://php.net/xml_set_element_handler, le deuxième paramètre de cette callback est le nom de l'élément courant tandis que le troisième est un tableau des attributs du noeud. Donc tu peux faire un test sur la valeur du noeud et effectuer des traitements associés...
__________________
Get your motor runnin'
Head out on the highway...
Mr N. 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 22h28.


 
 
 
 
Partenaires

Hébergement Web