Aide - Recherche - Membres - Calendrier
Version complète : [pertinent] :Création automatique de fichier XML
Forum Développeur - Administration serveur, programmation et base de données > Programmation > XML et XSL
ketzo
Je m'explique, je souhaiterais créer un fichier xml, qui relaterait toute les images présentes dans un dossier, leur nom, et donc le chemin pour y accéder
soit par exemple

Code

<gallery>
<image title="Balanced Breakfast" main="images/breakfast.jpg" thmb="thumbnails/breakfast.jpg"/>
<image title="Found this Bug" main="images/bug.jpg" thmb="thumbnails/bug.jpg"/>
<image title="Barbeque Lunch" main="images/bbq.jpg" thmb="thumbnails/bbq.jpg"/>
<image title="Evening Boat Ride" main="images/boat.jpg" thmb="thumbnails/boat.jpg"/>
</gallery>


Y 'a til un moyen pour ne pas tout se taper à la main, c'est à dire que le xml complete ses attributs, simplement en lui indiquant le dossier local ou les chercher.
J'ai cru apercevoir des solution avec php my sql, mais je ne m'y connais pas vraiment niveau base de données ( et puis devrais je encore rentrer toute ses informations manuellement dans une base de donnée, afin de les récupérer via php pour les réinscrir dans xml, a ce moment là je retombe sur le meme problème )
enfin bon, existe t il des programme, script facilement utilisable, et permettant de créer un xml (d'image dans mon cas) automatiquement. A préciser dans mon cas c'est pour etre utiliser dans une gallerie flash xml...
merci, il y a surement une masse énorme d'absurdité dans mon sujet, mais bon, suis novice, et il est 2h du matin, okaaaaay c'est bon je_sors.png wink.gif
+++
Michaël
Si j'ai bien compris (icon_surprised.gif), y a pas besoin d'sql pour ton cas smile.gif (et oui faut pas mettre du sql partout :x)

Suffit de créer un script php qui en fonction d'un répertoire donné, cherche tous les fichiers de type image (ou extensions) et créé un fichier xml à partir de ces données.

Pour illustrer tout ca :

Code
/* exemple
$path = "images/";
$to = "data.xml";
*/
function genXML($path,$to) {

$xml = "<gallery>";

// On ouvre le dossier
$rep = opendir($path);

// On parcoure les résultats
while ($file = readdir($rep)) {
 if ($file)
 {
  // Récupération de l'extension du fichier
  $extension = strtolower(substr($file,-(strlen($file)-strrpos($file,".")-1)));

  // Types d'images qui seront sauvegardées
  $types = Array("jpg","jpeg","gif","png","bmp");
 
  // On regarde si le fichier est une image
  if (in_array($extension,$types)) {
   
   // Rajout du noeud
   $xml .= '<image title="'.substr($file,0,strrpos($file,".")).'" main="'.$path.'images/'.$file.'" thmb="'.$path.'thumbnails/'.$file.'"/>';
  }
 }
}

// On ferme le dossier
closedir($rep);

$xml .= "</gallery>";

$file_handle = fopen($to,"w");
if (!fwrite($file_handle, $xml)) {
 echo "Un problème est survenu";
}
else {
 echo "Le fichier a bien été enregistré : <a href='".$to."'>".$to."</a>";
}
fclose($file_handle);
}

genXML("test/","data.xml");


Bien entendu, si tu veut donner un nom spécigique à chaque image.. tu auras besoin d'une base de donnée et tu seras obligé de les encoder...


edit : on se demande pourquoi je m'amuse à faire ca, alors que le mec a écrit le 21 septembre... faut vraiment aimer coder icon_biggrin.gif
Sol@rweb
Michaël (Dec 3 2005, 07:06 PM) a dit :
edit : on se demande pourquoi je m'amuse à faire ca, alors que le mec a écrit le 21 septembre... faut vraiment aimer coder icon_biggrin.gif


Ouep et puis on a pas l'habitude de donner des scripts tou fais ici, ce qui n'aide pas toujours les personnes qui cherchent des solutions...
Fred
Michaël (Dec 3 2005, 07:06 PM) a dit :
edit : on se demande pourquoi je m'amuse à faire ca, alors que le mec a écrit le 21 septembre... faut vraiment aimer coder icon_biggrin.gif
*



Oui, mais c'est sympa quand même.
Je tague le sujet comme 'Pertinent'. icon_smile.gif
Michaël
shgamer (Dec 5 2005, 01:38 PM) a dit :
Ouep et puis on a pas l'habitude de donner des scripts tou fais ici, ce qui n'aide pas toujours les personnes qui cherchent des solutions...
*


Ouép mais ca aide bcp parfois smile.gif

hibou57
Heuuu.. et dans la même veine, j'ai une question idiote : xpath ne permet pas d'acceder au contexte de l'environnement du document ?

Pas possible de faire quelque chose du genre « /.. » pour acceder au dossier contenant le document ? ... et de faire par exemple un teste sur « /../*.gif » pour retrouver tous les noms de fichiers correspondant à une image ?

Je pose cette question naïve, parce que xpath ressemble beaucoup au notation de chemin que l'on retrouve dans les os .
jep
hibou57 (Jan 5 2006, 09:01 PM) a dit :
Je pose cette question naïve, parce que xpath ressemble beaucoup au notation de chemin que l'on retrouve dans les os .
*


Oui, mais attention car XPath ne permet que d'acceder à des noeud d'un document XML dans un contexte XML, mais certainement pas à des ressources externes (comme des images par exemple) dans un contexte de sytème de fichier !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2008 Invision Power Services, Inc.