|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Bonjour,
Je suis sur un projet ou dans une première phase il faut récupérer des données dans plusieurs flux XML. Ces flux XML contiennent tous les mêmes données sur des produits de commerce (nom, description, prix, disponibilité, frais de port etc...). Il faut classer ces informations dans un tableau puis les enregistrer dans une table. Le problème est que les balises de chaque flux sont différentes, ils ont tous un gabarit différent. Par exemple pour les frais de port ca peut être <frais>, <fraisdeport>, <fraisport>, <frais_de_port>, <port> etc... Et il y a aussi un problème de chemin, <frais_de_port> peut très bien être dans <prix> comme il peut ne pas y être. J'ai donc eu l'idée d'enregistrer les gabarits dans une table en disant par exemple que prix->frais_de_port correspond aux frais de ports et à la boutique 6. En effet j'ai lu la doc et d'après ce que j'ai compris il faut enregistrer sous cette forme un->deux->trois. Si vous pouviez me confirmer ceci, merci. Mais je n'ai pas tout a fais saisi comment parser. C'est pour celà que je vous demande de l'aide, si vous pouviez m'expliquer ou me passer l'adresse d'un dictaciel clair (car la doc est nuageuse pour moi ^^) Merci pour votre aide, ludo. |
|
|
00
|
|
|
#2 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
La version de php est à prendre en compte pour commencer. En effet, sous php4 vous aurez DOM XML alors que sous php5 vous trouverez plutôt SimpleXML et DOM. Voir même utiliser une méthode de parsing Sax
![]() Profitez-en pour vérifier, à l'aide de phpinfo, qu'une telle extension est également disponible. Quelle taille font ces fichiers ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Alors c'est PHP 5 qui est utilisé, je pourrais donc utiliser simplexml.
Quant aux fichier, ils seront assez volumineux, ce sont les listes des produits de grands commerces en ligne du genre cdiscount, rueducommerce etc... Pourquoi cette question sur la taille des fichiers ? |
|
|
00
|
|
|
#4 | |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Oui d'autant plus que SimpleXML est plus confortable à utiliser
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Je ne peux donc pas utiliser SIMPLEXML étant donné que mes fichiers sont volumineux ?
Je dispose d'un serveur dédié. |
|
|
00
|
|
|
#6 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si bien sûr, tout dépend ce qu'on appelle volumineux. De toute manière puisque vous possédez un serveur dédié vous pourrez réajuster au besoin les paramètres que je vous ai donné plus haut. (PHP vous affichera des messages d'erreur si ça venait à arriver.)
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Ceci m'a intrigé et je suis aller jeter un coup d'oeil à ce problème sur le net.
J'ai vu quelque par que simplexml devait tout d'abord chargé le fichier xml en entier avant de le traiter et par conséquent celà posait un problème avec les fichiers volumineux. C'est faux ? |
|
|
00
|
|
|
#8 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
C'est ce que je disais quelques posts plus haut
Mais pour être fixé faites-en l'essai (un simple appel à simplexml_load_file sur votre fichier) |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Le serveur dédié n'est pas a ma disposition.
Je vais encore devoir attendre une semaine pour faire les tests. Merci pour votre aide. Le topic remontera surement à la suface quand j'aurais fais les tests |
|
|
00
|
|
|
#10 | |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Sinon, j'ai posé la question sur quel outil utiliser pour parser a une connaissance.
Il m'a répondu : Citation:
|
|
|
|
00
|
|
|
#11 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Si vous êtes obligés de le faire en PHP il faut prendre tous les éléments en considération : environnement matériel, taille estimée de vos fichiers, utilisation/fréquence du traitement, ...
Vous avez dit dans votre premier post que vous deviez les trier avant de les insérer dans la base : dans ce cas un parsing de type SAX ne conviendra probablement pas. De plus, je ne sais pas exactement ce que vous entendez par tri mais une base de données offre aussi cette fonction (ORDER). Enfin, si votre prestataire vous permet d'accéder à distance à votre base de données ça vous offre d'autres perspectives comme embaucher votre connaissance pour écrire cela en .net
|
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : avril 2007 Messages : 24 ![]() |
Ce que j'entends par tri, c'est récupérer seulement les données qui m'intéressent.
Par exemple pour une liste de bouquins, si je veux le nom des bouqins mais pas la description. Sinon j'ai oublié de préciser que je souhaite mettre à jour ces flux toutes les 24 heures, il faut donc que le traitement soit rapide. La taille des fichiers xml peut monter très haut : ca peut être 50Mo comme ca peut être 500Mo. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com