|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Futur Membre du Club
![]() Développeur Web Inscription : décembre 2006 Messages : 61 ![]() |
Bonjour,
J'ai un fichier xml à traiter qui possède plus de 29000 noeuds, et j'ai besoin de votre aide pour optimiser mon code qui le parcours. Pour le moment je peux traiter environ 14000 noeuds après quoi j'ai une erreur : Citation:
Code :
Pour info j'ai fait des tests en mettant en commentaire le foreach et l'insert into et j'ai le même problème, je pense donc qu'il faut que je lise mon XML autrement sans faire de boucle. La ligne qui ne semble pas du tout être optimisé est celle ci : Code :
$listClient = $dom->getElementsByTagName('client')->item($i); |
|||
|
|
00
|
|
|
#2 | ||
![]() ![]() Développeuse PHP/Java Inscription : avril 2007 Messages : 4 259 ![]() |
Le problème vient probablement du fait que $dom->getElementsByTagName('client') remonte tous les nodes <client>. Si tu as 29000 nodes <client>, ça fait un tableau de 29000 éléments à chaque tour de boucle... Tu peux commencer par sortir la lecture du xml de la boucle.
Code :
__________________
Modératrice PHP Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [CODEINLINE=php][/CODEINLINE] |
||
|
|
00
|
|
|
#3 | ||
|
Futur Membre du Club
![]() Développeur Web Inscription : décembre 2006 Messages : 61 ![]() |
Bonjour,
Ça aurai pu en effet être une solution et je te remercie de m'avoir répondu. Je suis du coup passé à simpleXML qui est bien plus rapide voici mon nouveau code : Code php :
Avec ce code les 29000 noeuds sont traité en moins d'une seconde |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com