comment au mieux effectuer une recherche dans un fichier XML?

comment au mieux effectuer une recherche dans un fichier XML? - HTML/CSS - Programmation

Marsh Posté le 13-03-2012 à 12:50:43    

Bonjour tout le monde
 
je reviens vers vous pour mon apprentissage d'ajax de xml jquery etc...
 
voilà l'idée en cours:
 
disons que j'ai un fichier xml de ce style


<livres>
      <livre>
           <num>0</num>
           <titre>rouge et le noir</titre>
           <auteur>Stendhal</auteur>
           <date>1830</date>
           <resum>Julien S...</resum>
      </livre>
      <livre>
           <num>1</num>
           <titre>les Miserables</titre>
           <auteur>Hugo</auteur>
           <date>1862</date>
           <resum>le bagnard Jean Valjean</resum>
      </livre>
      <livre>
           <num>2</num>
           <titre>Amance</titre>
           <auteur>Stendhal</auteur>
           <date>1827</date>
           <resum>Octave de Malivert,...</resum>
      </livre>
      ...
</livres>


 
J'utilise les methode du DOM pour traiter mes sources xml et les repercuter sur une page web
 
je cherche a proposer un lien (par exemple <a href=..>Stendhal</a> qui m'affiche la liste des titres dans mon fichier xml dont l'auteur est "Stendhal" et en ayant à diposition dans un tableau (une "liste" en fait) de tous les eléments "livre" correspondants
 
vers quelle methode la plus adequate dois-je m'orienter?
 
est ce que je fais un getelemntbytagname('livre') puis je fais une boucle sur tout le "tableau" et si auteur= je cree un nouvel oblet "tableau" avec les sous arbres livre qui vont bien?
 
ou bien je peux directement faire le getelmentbytagname sur auteur et stocker les noeuds parents
 
ou encore existe t'il un truc jquery ou autre chose qui fait ca?
 
par avance merci à ceux qui me donneront le plus d'information pour que j'etudie au mieux ce qu'il conviendrait de faire pour ce besoin
 
:jap:


Message édité par tintin34 le 13-03-2012 à 13:00:28
Reply

Marsh Posté le 13-03-2012 à 12:50:43   

Reply

Marsh Posté le 14-03-2012 à 09:03:52    

On va déjà remettre 2-3 points au clair :
- ajax désigne l'objet xmlhttprequest de javascript
- jquery est une lib javascript
- xml est un mata-langage à base de balises
 
Pour faire ce que tu veux, le mieux, à mon avis, aurait été d'utilisé un langage côté serveur (comme php) + XSL.
Il me semble qu'on peut faire du XSL côté client mais là, ça dépend des capacités de chaque navigateur, pour que ça marche partout, ça risque d'être compliqué :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 14-03-2012 à 10:50:56    

rufo à déjà tout dit en gros :)
Soit tu passe par le php et tu est sûr que ça fonctionnera partout, mais il te faut un serveur apache et quelques connaissances en PHP ( rien de  méchant je te rassure )
Soit tu passe en JS et là il te faudra intégrer ton fichier dans le chargement de la page web => ralentissement, et en plus tu mettra à disposition de tout utilisateur la totalité des données de ton XML ( indirectement mais bon .. ) Et franchement en JS ça risque d'être un peu chaud :/
 
 
Donc en gros, prends le PHP ou un langage du genre :D


---------------
L'ennui est le pire ennemi d'un travail réussi
Reply

Marsh Posté le 16-03-2012 à 21:21:21    

merci a vous deux oui je connais php sql etc... et toute la panoplie possible coté serveur
 
le deal c'est que le client m'impose le javascript et le xml sans apport de php et autre possibilité plus aisées coté serveur  
je dois donc tout imaginer pour que ca se fasse coté client à cause du bonhomme client qui me demande comme ca :(
 
apres j'ai bien vu que AJAX c'est httprequest et xmlresponse
 
m'en suis pas mal sorti avec tout ca pour le moment
le hic c'est que le fichier Livres.xml il reference les livres et qu'evidement à un moment de son site il veut une sous liste suivant un meme auteur
 
pour le moment j'ai adopté la solution de parcourir tout le fichier et de collectionner un tableau "d'objets" de type sous arbre "livre" en verifiant a chaque fois si le fils 3 de livre a une valeur qui est l'auteur voulu
 
on arrive à s'en sortir c'est lourd par moment mais bon "le client est roi parait il"
 
par contre on m'a dit que dans jquery il y avait des routines toutes ecrites qui facilitent la manipulation du DOM (et en particulier j'etais interressé par le parcours d'un arbre xml en main gauche pour récupérer tous les noeuds) j'ai pas trouvé
 
vous avez peut etres les uns et les autres des références de bon livres JQuery et autres qui servent de bibles ensuite pour la syntaxe (je suis pas novice en informatique ni en programmation ;) )
 
j'ai trouvé aussi sur le net l'apparition de XQuery avec une syntaxe proche de SQL par contre j'ai pas tout saisie la facon de le mettre en oeuvre
 
de ce que j'ai vu ca serait dans une sorte de xml bis et ca construierait la requette mais visiblement on peut pas s'en servir en utilisant du javascript? non? :heink:
 
 
sinon pour le xml moi j'avais compris que c'etait juste une syntaxe plus ou moins référence pour définir des données dans un flux à charge ensuite aux applications ou aux sites web de les lires les comprendre et les manipuler (et eventuellement les modifier), il semble effectivement que les fichiers xml arrivent dans mon cache mais bon il y a rien que de l'info structurée d'une certaine facon rien de privative
 
je suis d'accord avec vous deux ca aurrait ete mieux à tout point de vue de mettre tout ca dans SGBD, genre mySQL et utiliser du PHP mais c'est pas leurs souhaits et heureusement les xml ne contiennent que de la donnée à publier soit sur le net soit ailleurs je suppose

Reply

Marsh Posté le 16-03-2012 à 23:05:29    

Normalement quand on recoit une grappe d'objets de ce genre, on fait en sorte de transformer chaque objet en un objet manipulable plus facilement.
 


---------------
Blablaté par Harko
Reply

Marsh Posté le 18-03-2012 à 11:25:57    

Personne a parlé de SGBD. On a simplement dit que manipuler du XML avec PHP plus la lib XSL aurait été plus simple.
 
Petite question : quelle est la raison invoquée par le client de ne pas utiliser php :??: Normalement, un client exprime des besoins fonctionnels à sa MOE, la MOE se débrouille pour la partie technique (en tenant compte d'éventuelles contraintes). Mais le client n'a pas à dire à la MOE comme réaliser une implémentation...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 04-05-2012 à 14:55:13    

de ce que j'ai compris rufo, le client a pas acces à php, pour ca que les choses se sont orientées differement dans les choix techniques

Reply

Marsh Posté le 13-05-2012 à 20:48:12    

Le mieux est de "convertir" votre XML en PHP, d'envoyer les informations sur une base de donnée MySQL et ainsi vous pourrez administrer votre fichier très simplement!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed