Traitement php sur un portion de fichier xml !!!!

Résolu
charloteuf Messages postés 24 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 décembre 2005 - 20 juil. 2005 à 14:36
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 20 juil. 2005 à 15:11
Hello,

J'ai bien lu les sujets précédents, mais je me demande si le
parsing xml est possible pour ma méthode.

En fait j'ai un fchier xml de 15000 ligne, et je veux le parcourir uniquement sur une zone précise, la parser mais simplement entre les id 12500 et 12700 par exemple sans charger le fichier en entier.

le xml est comme cela :

<fichier>
<f id =1 param=40/>
<f id =2 param=45/>
<f id =....../>
<f id =12500 param=80/>
<f id =....../>
<f id =12700 param=100/>
<f id =14999 param=40/>
<f id =15000 param=45/>
<f id =....../>
</fichier>

Une idée ??
Est ce que c'est possible avec du xslt par exemple ou du Dom, j'ai lu pas mal d'exemple et de tuto mais vu que je connais ni l'un ni l'autre et que le temps presse :) j'aimerai bien savoir un peu plus où aller !

Merci d'avance !
Ril2Ril

5 réponses

charloteuf Messages postés 24 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 décembre 2005
20 juil. 2005 à 15:04
Ah !

Ouf la petite frayeur !
J'ai confondu chargé et downloader! Pas de probleme s'il l'ouvre sur le serveur, de toutes façon, on a un truc bien bourrin 4go de Ram, donc pas de prob, mais les fichiers vont etre de plus de 300ko ...

En tt cas merci pour tes réponses et ta réactivité Malalam.
Now faut que je me forme à XPATH, Dom c'est un bibli externe de php 5 il faut l'installer je pense non ?

Bon je vais aller voir ça
Merci !
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juil. 2005 à 14:45
Hello,



C'est vraiment comme ca ton fichier xml ? Parce que en XML, les attributs doivent etre entre guillemets...



Tu peux recuperer ce que tu veux. Recuperer tous les elements ou l'attribut id est compris entre x et y.

Tu peux utiliser XPath pour ca.

http://de.php.net/manual/en/function.dom-domxpath-query.php

par exemple

ou

http://de.php.net/manual/en/function.simplexml-element-xpath.php



La c'est pour php5.

Pour php4 regarde en effet dans DOMxml sur le manuel, il y a aussi des fonctions XPath.



Par contre tu ne pourras pas ne pas charger le fichier en entier. Il
faut bien le lire en entier pour savoir ou commence et ou fini ton
intervalle pour l'id.
0
charloteuf Messages postés 24 Date d'inscription mardi 27 juillet 2004 Statut Membre Dernière intervention 4 décembre 2005
20 juil. 2005 à 14:50
Ok,

Merci de ta réponse rapide, si je parcours le fichier et que je l'ouvre en php,
donc sur le serveur, si mon fichier fait 300Ko, il va pas me mettre le temps de chargement du fichier en entier pour traiter les info j'espere ?

Sinon quelle est l'interet de l'architecture en arbre de XML ?

Merci en tt cas, vive xpath, j'en ai fait un peu cette année, mais j'étais sous linux c possible de tester sous windows( je tourne avec Easyphp :) ) ?

By
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juil. 2005 à 14:55
Bah vi vi, ca marche aussi, c'est dans les differentes lib XML de php. Donc tu peux.



L'architecture en arbre de XML est faite pour stocker efficacement les
donnees, pas pour pouvoir naviguer dedans sans charger tout le fichier
XML.

Je ne vois pas comment tu pourrais reussir ton coup la, sans tout charger.

mais ouvrir cote serveur un fichier de 300ko ca ne devrait pas etre
tres tres long hein. C'est le serveur qui charge les donnees, pas
le client. C'est pas du download. Ouvre le toi sur ton XMLSpy ou ce que
tu veux, tu verras le temps qu'il met pour se charger.



Perso je traite dans mon taf des fichiers xml qui font justement en
moyenne dans les 300ko, en php, et c'est rapide, aucun soucis.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 juil. 2005 à 15:11
Non non, pas besoin d'installer quoique ce soit.

C'est fournit avec les librairies XML installees par defaut avec les differentes versions de php.

C'est dans le bundle standard quoi.

Un petit rappel sympa pour XPath :

http://www.w3schools.com/xpath/xpath_syntax.asp
0