Interface avec frames à partir de données XML

Interface avec frames à partir de données XML - XML/XSL - Programmation

Marsh Posté le 29-08-2005 à 16:34:37    

Bonjour à tous, un nOOb intégral débarque (un de plus...  :p ). Plus habitué au forum Vidéo/Son, je ne connais quasiment rien à la programmation, mais j'essaye d'adapter des scripts divers dans le but d'exporter en HTML le listing de ma discothèque. Et à terme, je l'espère, produire une interface de navigation locale pour mes fichiers audio (Wavpack + tags ApeV.2).
 
Mon problème pour l'instant est de produire un ensemble de pages à partir de données XML et je fais peut-être complètement fausse route.
 
* J'ai un fichier XML résultant de l'exportation de tags audio (cf ci-dessous). J'ai gardé seulement Artist/Album/Title, pour l'instant. Si ça peut marcher avec 3 tags, ça marchera avec 12.
 
* Je veux obtenir une interface à 3 frames liées entre elles. Quand on clique sur un nom d'artiste dans la frame 1, la liste des albums s'affiche dans la frame 2, puis cliquer sur un album affiche la liste des titres dans la frame 3. J'ai fait un mock-up pour être sûr d'être clair, mais je pense que tout le monde aura compris le principe, c'est tout bêtement comme une media library à la Winamp/iTunes ou une interface de PCHC :
 
http://perso.wanadoo.fr/borabora/mockup.png
 
Les questions, c'est :
 
1 - Est-ce que c'est possible à partir d'un simple fichier XML ou faut-il obligatoirement passer par une BDD ?
 
2 - Si c'est possible, est-ce que mon fichier XML est adapté à ça, et comment dois-je faire ? Je le répète, je suis complètement ignare, la programmation n'est ni mon job, ni même mon hobby.  :o  
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <WavpackList>
  3. <artist>
  4.  <name><![CDATA[Cal Tjader]]></name>
  5.   <album>
  6.    <title><![CDATA[Soul Bird- Whiffenpoof]]></title>
  7.     <track>
  8.      <title><![CDATA[The Whiffenpoof Song]]></title>
  9.     </track>
  10.     <track>
  11.      <title><![CDATA[Soul Bird (Tin Tin Deo)]]></title>
  12.     </track>
  13.     <track>
  14.      <title><![CDATA[How High The Moon]]></title>
  15.     </track>
  16.     <track>
  17.      <title><![CDATA[That's All]]></title>
  18.     </track>
  19.     <track>
  20.      <title><![CDATA[Soul Motion]]></title>
  21.     </track>
  22.     <track>
  23.      <title><![CDATA[Reza]]></title>
  24.     </track>
  25.     <track>
  26.      <title><![CDATA[The Prophet]]></title>
  27.     </track>
  28.   </album>
  29. </artist>
  30. <artist>
  31.  <name><![CDATA[Carla Thomas]]></name>
  32.   <album>
  33.    <title><![CDATA[Comfort Me]]></title>
  34.     <track>
  35.      <title><![CDATA[Comfort Me]]></title>
  36.     </track>
  37.     <track>
  38.      <title><![CDATA[No Time To Lose]]></title>
  39.     </track>
  40.     <track>
  41.      <title><![CDATA[Yes, I'm Ready]]></title>
  42.     </track>
  43.     <track>
  44.      <title><![CDATA[Lover's Concerto]]></title>
  45.     </track>
  46.     <track>
  47.      <title><![CDATA[I'm For You]]></title>
  48.     </track>
  49.     <track>
  50.      <title><![CDATA[What The World Needs Now]]></title>
  51.     </track>
  52.     <track>
  53.      <title><![CDATA[Let It Be Me]]></title>
  54.     </track>
  55.     <track>
  56.      <title><![CDATA[A Woman's Love]]></title>
  57.     </track>
  58.   </album>
  59.   <album>
  60.    <title><![CDATA[Gee Whiz]]></title>
  61.     <track>
  62.      <title><![CDATA[Gee Whiz (Look At His Eyes)]]></title>
  63.     </track>
  64.     <track>
  65.      <title><![CDATA[Dance With Me]]></title>
  66.     </track>
  67.     <track>
  68.      <title><![CDATA[A Lovely Way To Spend An Evening]]></title>
  69.     </track>
  70.     <track>
  71.      <title><![CDATA[Your Love Indeed]]></title>
  72.     </track>
  73.     <track>
  74.      <title><![CDATA[Fools Fall In Love]]></title>
  75.     </track>
  76.     <track>
  77.      <title><![CDATA[To The Aisle]]></title>
  78.     </track>
  79.     <track>
  80.      <title><![CDATA[(I'm Afraid) The Masquerade Is Over]]></title>
  81.     </track>
  82.   </album>
  83. </artist>
  84. </WavpackList>

Reply

Marsh Posté le 29-08-2005 à 16:34:37   

Reply

Marsh Posté le 29-08-2005 à 16:44:01    

Donc, il ne faut pas faire de frames ... tu peux le faire tres bien sans ...
 
A part ca :
 
Oui tu peux le faire avec un fichier XML, mais tu risques de te compliquer la vie au moment de faire tes tris .. cela dit si ca reste un fichier de cette complexité, c'est assez bien le XML...
 
Une petite remarque, un artiste a (en general ..) 1 seul nom, aisi qu'un album a un seul titre, et une chançon pareil. Donc au lieu de faire comme tu fais, met un attribut dans la balise parente .. ça te simplifiera beaucoup la vie


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-08-2005 à 17:24:49    

Merci pour ta réponse.  :)  

esox_ch a écrit :

Donc, il ne faut pas faire de frames ... tu peux le faire tres bien sans ...


Bonne nouvelle, je n'aime pas les frames. :o

Citation :


Oui tu peux le faire avec un fichier XML, mais tu risques de te compliquer la vie au moment de faire tes tris .. cela dit si ca reste un fichier de cette complexité, c'est assez bien le XML...


Le fichier final sera beaucoup plus complexe, car chacun de mes fichiers audio peut comporter jusqu'à 35 tags. Par ailleurs, j'ai environ 35 000 fichiers. Mais côté tris, ça se fera toujours sur 3 critères (artiste/album/tracks). Pour les recherches ou constitutions de playlists complexes, j'utilise la base de données de mon lecteur audio (Foobar2000). Là, ce que je veux, c'est juste une interface de navigation dans mes albums, jolie et simple, adaptée aussi bien au web qu'en local.
 
Est-ce que ces éléments changent quelque chose ou est-ce que le XML reste adapté à mon cas ?
 
Pour compléter le pourquoi du comment : je peux facilement générer un fichier XML de l'ensemble de ma discothèque avec des softs comme MP3Tag ou Foobar. C'est un peu long à mouliner, mais je ne le mettrai pas à jour souvent, une fois tous les 2 mois à tout casser. Donc je me suis dit que si je pouvais transformer ce fichier XML en HTML, ça faisait un bon raccourci par rapport à la création d'une BDD. Naïf ou réaliste ?

Citation :


Une petite remarque, un artiste a (en general ..) 1 seul nom, aisi qu'un album a un seul titre, et une chançon pareil. Donc au lieu de faire comme tu fais, met un attribut dans la balise parente .. ça te simplifiera beaucoup la vie


C'est-à-dire ?  :o

Reply

Marsh Posté le 29-08-2005 à 17:41:54    

Bein disons qu'une base de donnée dans ce cas sera beaucoup plus rapide ... Il ne faut pas oublier que le XML c'est quand meme du texte ... donc lent a parser..  
 
Perso je te conseille de passer ton XML a la moulinette pour le mettre dans une base de donnée ...  
 
A part ca, pour ma remarque sur l'attribut  
 
au lieu de mettre
 
<artiste>
<nom>X</nom>
...
 
<artiste nom="x">


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 29-08-2005 à 18:11:04    

esox_ch a écrit :

Bein disons qu'une base de donnée dans ce cas sera beaucoup plus rapide ... Il ne faut pas oublier que le XML c'est quand meme du texte ... donc lent a parser..
Perso je te conseille de passer ton XML a la moulinette pour le mettre dans une base de donnée ...  


 
Oki, je comprends. C'est certainement mieux, effectivement.

Citation :


A part ca, pour ma remarque sur l'attribut  
 
au lieu de mettre
 
<artiste>
<nom>X</nom>
...
 
<artiste nom="x">


Ah oui, d'accord. :o En fait, le niveau hiérarchique supplémentaire était là pour accueillir d'autres attributs. Pour track, par exemple : durée, date d'enregistrement, musiciens, etc. Mais je vais laisser tomber et voir du côté export vers BDD.
 
Merci pour tes réponses.  :jap:

Reply

Sujets relatifs:

Leave a Replay

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