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

Résolu
Signaler
Messages postés
24
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2005
-
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
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

Messages postés
24
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2005

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 !
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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.
Messages postés
24
Date d'inscription
mardi 27 juillet 2004
Statut
Membre
Dernière intervention
4 décembre 2005

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
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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.
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
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