IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Arborescence dossier sur XML


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut Arborescence dossier sur XML
    Bonjour,

    je doit lister une arborescence de dossiers, sous dossier et fichier dans un fichier XML, mais je bloque:

    L'arborescence serveur a lister:

    _Root
    -dossier "themes"
    --ThemeArchi (dossier nom du theme)
    ---architecture-japon (dossier nom de limage 1)
    ----architecture-japon.jpg (fichier images)
    ---A3 (dossier)
    ----architecture-japonA3.jpg (images a3)
    ---A4 (dossier)
    ----vide
    ---Web (dossier)
    ----architecture-japonWEb.jpg (imageweb)

    ---architecture-asie (dossier nom de limage 2)
    ----architecture-asie.jpg (imagesjpg)
    ---A3 (dossier)
    etc
    --ThemeSport (dossier nom du theme)
    etc

    voici le code pour generer le xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <?php 
    header("Content-Type: text/xml"); 
    $xml = '<?xml version="1.0" encoding="utf-8" ?>  
    ';
    $xml .= '<fichiers>';
     
    function ParcourRepertoire($Chemin, $ProfondeurMax = -1 , $Mode = "TOUT", $P = 0)
    {
    if(substr($Chemin, strlen($Chemin) - 1) != '/')
    $Chemin .= '/';
    $ListeRep = array();
    if($Mode != "FICHIERS")
    $ListeRep[] = $Chemin;
    if($handle = opendir($Chemin))
    {
    while(false !== ($Fichier = readdir($handle)))
    {
    if($Fichier != '.' && $Fichier != '..')
    {
    $Fichier = $Chemin . $Fichier;
    if(! is_dir($Fichier))
    {
    if($Mode != "REPERTOIRES")
    $ListeRep[] = $Fichier;
    }
    elseif($P >=0 && ($P < $ProfondeurMax || $ProfondeurMax < 0))
    {
    $result = ParcourRepertoire($Fichier . '/', $ProfondeurMax, $Mode, $P + 1);
    $ListeRep = array_merge($ListeRep, $result);
    }
    }
    }
    closedir($handle);
    }
    if($P == 0 )
    natcasesort($ListeRep);
    return($ListeRep);
    }
    $ListeResult = ParcourRepertoire('../Themes');
    $TailleTab = count($ListeResult);
    for($i=0;$i<$TailleTab;$i++)
    {
    if(! is_dir($ListeResult[$i]))
    {
    $xml .= '<Themes>';
    $xml .= '<categorie>'.$ListeResult[$i].'</categorie>';
    $xml .= '</Themes>';
    }
    }
     
    $xml .= '</fichiers>';
    echo $xml;
    ?>
    la reponse:

    - <Themes>
    <categorie>../Themes/Architecture-Urbanisme/photo1/1504cite0231231_-_Copie_(2).jpg</categorie>
    </Themes>
    - <Themes>
    <categorie>../Themes/Architecture-Urbanisme/photo1/a3/1504cite0231231_-_Copie_(3).jpg</categorie>
    </Themes>
    - <Themes>
    <categorie>../Themes/Architecture-Urbanisme/photo1/a4/1504cite0231231.jpg</categorie>
    </Themes>
    - <Themes>
    <categorie>../Themes/Architecture-Urbanisme/photo1/web/1504cite0231231_-_Copie.jpg</categorie>
    </Themes>

    voila j'aimerai pourvoir exploser cette ligne en 4 partie

    - <Themes>
    <categorie>Architecture-Urbanisme</categorie>
    <nom>photo1</nom>
    <a3>1504cite0231231_-_Copie_(3).jpg</a3>
    <a4>1504cite0231231.jpg</a4>
    <web>1504cite0231231_-_Copie.jpg</web>
    </Themes>

    le but de ce code seras par la suite de parser le xml sur la mysql pour faire un ajout massif et automatique des images de ma gallerie
    si quelqu'un peut jeter un coup d'oeil a ma source pour m'aider a la modifier
    merci beaucoup

  2. #2
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    tu pourais faire cela via une feuille de style qui génère un svg mais il existe un logiciel qui fait ce genre de travail est graphviz

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    merci pour ta reponse fraoustin,

    mais je ne comprend pas trop l'interet dans mon cas d'utiliser Scalable Vector Graphics ou un logiciel tiers... si j'ai bien compris Scalable Vector Graphics
    scan des formes et enregistre dans le XML ou XHTML ?


    pourrez me donner plus d'info sur cette méthode, je suis vraiment embeté, il faut que je termine cette fonctionnalitée rapidement.

    Cordialement Fred

  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Je vois deux pistes : soit modifier le code PHP pour construire intelligement le XML en reconnaissant les histoires de A3, A4... , soit appliquer une transformation XSLT sur le premier XML pour construire le second.

    L'analyse de chaînes de caractères comportant un séparateur (ici le /) est possible en XSLT mais passe généralement par un call-template récursif...

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    Merci de ta reponse alain.couthures

    je vais regarder vers le XSLT, mais je ne maitrisse pas du tout cette technique, serez t'il possible par la suite d'inserer le contenue du fichier XSLT dans mysql ?

    autrement si une personne pouvez m'aider à reformuler mon fichier php cela serez l'ideal

    merci beaucoup d'avance

    edit:

    j'ai essayé une autre methode pour le php
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    header("Content-Type: text/xml");
    $xml = '<?xml version="1.0" encoding="utf-8" ?>';
    $xml .= '<fichiers>';
    $dossiercateg = opendir("../Themes");
    while(($categ = readdir($dossiercateg)) !== false) 
      {
      $dossiernom = opendir("../Themes/" . $categ);
       while (($nom = readdir($dossiernom)) !== false)
            {
     
    if ($categ[0] != "." && $categ[0] != ".." && $nom[0] != "." && $nom[0] != ".." && !is_dir($categ) )
        {
        $xml .= '<Themes>';
    	$xml .= '<categorie>'.$categ.'</categorie>';
        $xml .= '<nom>'.$nom.'</nom>';
    	//$xml .= '<format>'.$format.'</format>';
    	//$xml .= '<A3>'.$A3.'</A3>';
        //$xml .= '<A4>'.$A4.'</A4>';
    	//$xml .= '<Web>'.$fichier.'</Web>';
        $xml .= '</Themes>';
        }
      }
    }
    closedir($dossiercateg);
    closedir($dossiernom);
     
    $xml .= '</fichiers>';
    echo $xml;
    ?>
    le resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
      <?xml version="1.0" encoding="utf-8" ?> 
    - <fichiers>
    - <Themes>
      <categorie>Animaux</categorie> 
      <nom>DEUC1282</nom> 
      </Themes>
    - <Themes>
      <categorie>Architecture-Urbanisme</categorie> 
      <nom>DSC_0729</nom> 
      </Themes>
    - <Themes>
      <categorie>Architecture-Urbanisme</categorie> 
      <nom>DSC_1762</nom> 
      </Themes>
    - <Themes>
      <categorie>Architecture-Urbanisme</categorie> 
      <nom>DSC_1861</nom> 
      </Themes>
    - <Themes>
      <categorie>Architecture-Urbanisme</categorie> 
      <nom>IMG_02271</nom> 
      </Themes>
    - <Themes>
      <categorie>Architecture-Urbanisme</categorie> 
      <nom>test images</nom> 
      </Themes>
      </fichiers>
    j'arrive pas à aller plus loin sur mon arborescence et le code est vraiment pas optimisé pour ce genre d'operation sniff snifff

    une ame charitable plz

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 11
    Par défaut
    je suis completement largué sur ce type de prog si quelqu'un peut me venir en aide.
    ca serez tres sympa merci

Discussions similaires

  1. [FTP] Synchroniser 2 dossiers sur un serveur
    Par frechy dans le forum Langage
    Réponses: 5
    Dernier message: 04/10/2005, 02h02
  2. Dossier sur les moteurs 3D
    Par Flyingdutchman dans le forum OpenGL
    Réponses: 4
    Dernier message: 15/04/2005, 16h47
  3. Créer un dossier sur serveur distant
    Par TorÕ02 dans le forum C++
    Réponses: 7
    Dernier message: 11/10/2004, 17h30
  4. Réponses: 3
    Dernier message: 06/07/2004, 10h21
  5. Cours en Français sur XML-XSL et XPath
    Par Community Management dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 25/04/2002, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo