Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1455 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Chercher des valeurs dans un fichier XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chercher des valeurs dans un fichier XML

n°1976137
garath_
Posté le 22-03-2010 à 21:54:13  profilanswer
 

J'ai un fichier XML de 10Mo en ligne.
A l'intérieur j'ai cette structure:
 

Code :
  1. <produit id="1">
  2. <numero> 111111</numero>
  3. ...du bordel...
  4. <lien>le_lien1</lien>
  5. </produit>
  6.  
  7. <produit id="2">
  8. <numero>11112</numero>
  9. ...du bordel...
  10. <lien>le_lien2</lien>
  11. </produit>
  12. ....


 
Je veux faire une recherche sur la balise <numero> à partir d'une variable php et retrouver le lien correspondant à ce numéro...
Je ne sais pas trop comment m'y prendre... Utiliser le DOM ne me parait pas très adapté car si je peux retrouver facilement le numéro, je ne sais pas comment aller récupérer le lien correspondant.
 
Si quelqu'un peut m'aiguiller sur une piste pour cela, merci!
 
EDIT: alors je vois ça comme ça:
- Je recherche l'attribut numero ayant la valeur souhaité
- Je trouve son parent
- Puis j'interroge l'attribut lien enfant de ce dernier
 
Je ne sais pas trop si c'est clair...


Message édité par garath_ le 22-03-2010 à 22:32:04
mood
Publicité
Posté le 22-03-2010 à 21:54:13  profilanswer
 

n°1976160
gatsu35
Blablaté par Harko
Posté le 23-03-2010 à 03:24:49  profilanswer
 

seul le dom te permettra de jouer au singe et sauter de branche en branche dans ton arbre xml :)


---------------
Blablaté par Harko
n°1976171
garath_
Posté le 23-03-2010 à 08:38:12  profilanswer
 

Bien, mais je n'ai pas vraiment trouvé de documentation très claire sur ce point particulier.
Il y a un lien de référence avec quelques exemples de script?
 
D'autre part si ici le fichier fait 10Mo, cela reste relativement lourd à consulter à distance par le serveur.
J'en ai un autre qui fait 300Mo...
Il s'agit de catalogue de produits pour une affiliation, il y a un moyen de les interroger par le DOM sans que cela prenne 1/2h à ouvrir?

n°1976172
flo850
moi je
Posté le 23-03-2010 à 08:57:04  profilanswer
 

est ce que tu n'aurai pas intéerêt a charger ces fichiers en base de données ?


---------------

n°1976173
garath_
Posté le 23-03-2010 à 08:59:55  profilanswer
 

ça serait dommage (d'autant plus que ma base de donnée est bien trop petite), je n'ai besoin du lien que d'un seul produit à chaque fois.
Je ne comprend pas la logique des catalogues de produit d'affiliation... 300Mo c'est énorme à consulter même mon PC était à genoux.

n°1976197
stef_dober​mann
Personne n'est parfait ...
Posté le 23-03-2010 à 10:16:15  profilanswer
 

Bonjour,
justement, le fait charger ton catalogue dans une base, enfin juste une table devrais suffir, la recherche c'est le moteur de DB qui le prend en charge, donc plus besoin d'ouvrir un fichier de 300Mo avec tous ce que cela implique en ressource machine ;)
Et côté optimisation, c'est parfait, si tu as 50 produits avec 1 produit par requête en passant par le DOM tu ouvre 50 fois ton fichier de 300Mo, s'il y a 5 utilisateurs en même temps je te laisse faire le calcul ....
 


---------------
Tout à commencé par un rêve...
n°1976198
garath_
Posté le 23-03-2010 à 10:21:07  profilanswer
 

Oui mais ma base fournie par l'herbergeur ne fait que 25Mo...
Je suis en train de me documenter sur SAX qui apparement me permet de consulter un XML distant sans pour autant ouvrir et charger tout le catalogue.
Mais je ne trouve pas grand chose de clair pour l'instant

n°1976199
flo850
moi je
Posté le 23-03-2010 à 10:24:50  profilanswer
 

tu n'es peut etre pas obliger de tout charger en base : tu peux filtrer les produits qui ne te serviront jamais lors de la lecture
Sans parler du fait que tu ne chargeras que les données ( id et lien) , pas la syntaxe autour

 

en plan B, tu as peut etre les bases sql lite

 

Dans tous les cas, accéder régulièrement à un fichier texte de 300 Mo c'est du suicide


Message édité par flo850 le 23-03-2010 à 10:25:29

---------------

n°1976208
garath_
Posté le 23-03-2010 à 10:38:44  profilanswer
 

Il n'existe aucune possibilité de parcourir un flux xml distant sans pour autant mettre à genoux le serveur?
Parce que dans ce cas je ne comprends pas l'intérêt de la mise à disposition des catalogues produits par les boutiques en ligne...
 
Charger ce fichier en base ça m'ennuie parce que je vais m'en servir très peu.
Je pensais qu'il était possible d'interroger ce flux à partir de son adresse.

n°1976214
flo850
moi je
Posté le 23-03-2010 à 10:41:33  profilanswer
 

c'est juste un format d'échangen pas un format dans lequel on travaille


---------------

mood
Publicité
Posté le 23-03-2010 à 10:41:33  profilanswer
 

n°1976233
garath_
Posté le 23-03-2010 à 11:11:51  profilanswer
 

Et parser avec SAX ne permettrai pas d'éviter cela?

n°1976235
flo850
moi je
Posté le 23-03-2010 à 11:14:19  profilanswer
 

tu te rends compte de la taille du fichier ?  
c'est colossal


---------------

n°1976239
garath_
Posté le 23-03-2010 à 11:20:40  profilanswer
 

[:cupra]  J'avais cru lire que SAX était fait pour les gros fichiers XML.
Bon sinon je pense que je vais tout simplement laissé tomber.
 
J'explique juste ce que je voulais faire:
 
Rue du commerce ne fournit pas de liens profonds facile à faire avec ses produits.
On a pas de truc du genre http://affiliation=[[le lien normal du produit]]
Ils fournissent un catalogue de produits XML ou chaque produit se voit attribuer un lien profond http://affiliation/code_à_la_con_incomprehensible
 
Je pensais récupérer l'id du produit dans le lien normal et faire une recherche dans le catalogue xml sur cet id pour retourner le lien profond affilié.
Mais si je dois charge 300mo à chaque fois c'est utopique...
 
Si quelqu'un voit un autre moyen de faire :??:

n°1976243
flo850
moi je
Posté le 23-03-2010 à 11:24:33  profilanswer
 

tu le fais en une fois  ( ou une fois par jour ) , tu parcours ton enoOOOOOOOOOorme fichier, tu en recupère ce qui t'interesse et zou


---------------

n°1976246
garath_
Posté le 23-03-2010 à 11:26:52  profilanswer
 

Pas très adapté à mon utilisation.. Tant pis...
ça serait plus envisageable de parser régulièrement (2 à 3 fois par jour) un fichier de 10Mo?

n°1976252
flo850
moi je
Posté le 23-03-2010 à 11:30:15  profilanswer
 

c'est a toi de mesurer le temps que ça prends
Tu pourra peut etre descendre a une fois par heure sans risque  
 


---------------


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Chercher des valeurs dans un fichier XML

 

Sujets relatifs
Graphique Flash avec XMLString To XML
lire un fichier .mat en C Lier un fichier .cfg à un fichier .exe à l'aide d'un fichier .bat
Hyperlien dans flash via fichier xmlrecuperer données d'un fichier excel
[Oracle 10G] Données vers fichier Excel[VBS] Lire un fichier excel
[VBA] lire fichier texte jusqu'à ...case in blabla (KSH) ===> fichier CSV
Plus de sujets relatifs à : Chercher des valeurs dans un fichier XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR