Moteur de recherche dans fichier XML

Eléphanteau du PHP | 11 Messages

03 avr. 2009, 16:04

Bonjour,

dans le cadre d'un projet, je souhaite donner la possibilité de chercher du contenu dans un ensemble de fichiers XML.
Je possède un dossier (avec sous-dossiers) dans lequel se trouve un certain nombre de fichiers XML, je voudrait lire chacun de ses fichiers pour trouver à l'intérieur duquel se trouve une chaîne de caractères.
Lorsque je trouve ma chaine de caractère, je souhaiterai récupérer le nom du noeud où je me trouve pour permettre d'afficher le contenu de ce noeud, l'utilisateur l'éditerai et ensuite je met le fichier à jour.

J'ai pensé à une technique me permettant de réaliser mon moteur de recherche mais de façon ... débrouille à l'aide de fonctions stipos(), explode(), file_get_contents(), ... .

Avant de me lancer dans mon travail (lundi) je souhaiterai savoir si vous connaissez des fonctions pouvant me faciliter mon travail de manière à ne pas devoir recomencer plusieurs fois.

Vous, comment vous y prendriez-vous?

Merci d'avance.

PS: Je travail également avec Zend Framework au cas où vous connaissiez une fonction du framework.

Eléphanteau du PHP | 31 Messages

15 avr. 2009, 13:10

Bonjour,

Pour explorer le contenu des fichiers XML et en retirer des informations, rien n'est plus efficace que du Xquery (si je ne me trompe pas).

J'ai vu sur SourceForge un projet qui s'appelle "XQuery Lite", qui s'agit d'une classe permettant d'exécuter les requêtes Xquery avec PHP. Tu n'as qu'à jeter un oeil sur l'utilisation de cette classe, ça va sûrement t'aider: http://phpxmlclasses.sourceforge.net/cl ... _lite.html

ViPHP
ViPHP | 3300 Messages

15 avr. 2009, 13:45

dom et xpath c'est trés simple à utiliser

http://fr.php.net/manual/fr/class.domxpath.php

Autant utiliser directement les fonctionalités php si elles sont simples non?
Fait du php depuis que ca existe ou presque :)

Eléphanteau du PHP | 31 Messages

15 avr. 2009, 14:06

Oui, Nagol a raison, FLWOR n'est peut-être pas forcément nécessaire si l'on a seulement besoin d'extraire les données. C'est bien plus simple d'utiliser DOMXpath! :)

ViPHP
ViPHP | 3300 Messages

15 avr. 2009, 14:13

Oui, Nagol a raison
Doux mots à mon oreille, +1 pour mon égocentrisme maladif! :)
Fait du php depuis que ca existe ou presque :)

Eléphanteau du PHP | 11 Messages

16 avr. 2009, 17:02

Merci pour vos réponses ... bien que j'ai terminé ce projet depuis un moment lol.

J'avais finalement utilisé xpath et toutes les fonctionnalités de SimpleXML m'ont suffit.