Chercher des valeurs dans un fichier XML - PHP - Programmation
Marsh Posté le 23-03-2010 à 03:24:49
seul le dom te permettra de jouer au singe et sauter de branche en branche dans ton arbre xml
Marsh Posté le 23-03-2010 à 08:38:12
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?
Marsh Posté le 23-03-2010 à 08:57:04
est ce que tu n'aurai pas intéerêt a charger ces fichiers en base de données ?
Marsh Posté le 23-03-2010 à 08:59:55
ç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.
Marsh Posté le 23-03-2010 à 10:16:15
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 ....
Marsh Posté le 23-03-2010 à 10:21:07
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
Marsh Posté le 23-03-2010 à 10:24:50
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
Marsh Posté le 23-03-2010 à 10:38:44
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.
Marsh Posté le 23-03-2010 à 10:41:33
c'est juste un format d'échangen pas un format dans lequel on travaille
Marsh Posté le 23-03-2010 à 11:14:19
tu te rends compte de la taille du fichier ?
c'est colossal
Marsh Posté le 23-03-2010 à 11:20:40
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
Marsh Posté le 23-03-2010 à 11:24:33
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
Marsh Posté le 23-03-2010 à 11:26:52
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?
Marsh Posté le 23-03-2010 à 11:30:15
c'est a toi de mesurer le temps que ça prends
Tu pourra peut etre descendre a une fois par heure sans risque
Marsh Posté le 22-03-2010 à 21:54:13
J'ai un fichier XML de 10Mo en ligne.
A l'intérieur j'ai cette structure:
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