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

XSL/XSLT/XPATH XML Discussion :

[XSLT] XML vers SQL


Sujet :

XSL/XSLT/XPATH XML

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 [XSLT] XML vers SQL
    Bonjour,

    debutant dans le XSL, j'ai du mal a trouvé les commande adéquates pour transformer mon fichier xml en requete mysql

    fichier 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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <?xml:stylesheet type="text/xsl" href="books.xsl"?>
    <themes>
     <Architecture-Urbanisme>
      <DSC_0729>
      <A3>
      <fichiers>DSC_0729.jpg</fichiers>
      </A3>
      <A4>
       <fichiers>DSC_0729.jpg</fichiers>
      </A4>
      <basedef>
        <fichiers>DSC_0729.jpg</fichiers>
      </basedef>
      <Web>
        <fichiers>DSC_0729.jpg</fichiers>
      </Web>
    </DSC_0729>
     
     <DSC_1762>
     <A3>
       <fichiers>DSC_1762.jpg</fichiers>
     </A3>
     <A4></A4>
     <basedef>
     <fichiers>DSC_1762.jpg</fichiers>
     </basedef>
     <Web>
        <fichiers>DSC_1762.jpg</fichiers>
      </Web>
    </DSC_1762>
    </Architecture-Urbanisme>
    </themes>
    fichier xls:

    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
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="themes">
    <xsl:text> INSERT INTO phototheques (categ, nom, A3, A4, basedef, web) VALUES ( </xsl:text>
    <xsl:value-of select="categ"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="nom"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="A3/fichiers"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="A4/fichiers"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="basedef/fichiers"/>
    <xsl:text>, </xsl:text>
    <xsl:value-of select="web/fichiers"/>
    <xsl:text> </xsl:text>
    <xsl:text>);</xsl:text><br/> 
    </xsl:template>
    </xsl:stylesheet>
    resultats souhaité:

    INSERT INTO phototheques (categ, nom, A3, A4, basedef, web) VALUES ( Architecture-Urbanisme, DSC_0729, DSC_0729.jpg , DSC_0729.jpg, DSC_0729.jpg, DSC_0729.jpg);
    INSERT INTO phototheques (categ, nom, A3, A4, basedef, web) VALUES ( Architecture-Urbanisme, DSC_1762, NULL , DSC_1762.jpg, DSC_1762.jpg, DSC_1762.jpg);

    je situe bien mon erreur sur les value-of select="" mais ne comprend pas comment declarer mes valeurs sachant que je n'est pas de nom de balise pour les 2 premieres

    merci d'avance

  2. #2
    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
    N’hésitez pas à me dire si ma demande est impossible du a l'absence de balise fixe.

    le problème est que je ne suis pas arrivé à formater le XML comme je le désire

    voici la fonction php qui liste les dossiers, récupere leur nom et génere 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
    <?php
    function scan($rep)
      {
     
       $dir = opendir($rep); 
       if($dir) 
       {
       while (false !== ($f = readdir($dir)))
       {
       if(is_file($rep.$f)) 
       { 
       echo '<fichiers>'.$f.'</fichiers>'; 
       }
       if(is_dir($rep.$f) && $f!=".." && $f!=".")
       {
      echo '<'.$f.'>';
      $new_dir=realpath($rep.$f);
      scan("$new_dir/"); 
      echo '</'.$f.'>';
       } 
       } 
       }
     closedir($dir);}
     
     
    header("Content-Type: text/xml");
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
    echo'<?xml:stylesheet type="text/xsl" href="books.xsl"?>';
    echo '<themes>';
    scan("../upload/");
    echo '</themes>';
    ?>
    structure des dossiers à scanner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    _Root
    -dossier "themes"
    --Architecture-Urbanisme (dossier nom du theme)
    ---DSC_0729 (dossier nom de limage 1)
    ---DSC_0729.jpg (fichier vignette images)
    ---A3 (dossier)
    ----DSC_0729.jpg (images a3)
    ---A4 (dossier)
    ----vide
    ---basedef (dossier)
    ----DSC_0729.jpg (images basedef)
    ---Web (dossier)
    ----DSC_0729.jpg (imageweb)
    je n'arrive pas à récupérer les noms des dossiers, sous dossiers et fichiers dans leur balise respective.

    l'idéal pour le traiter en xsl serait d'arriver à récupérer mes valeurs comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <doc>
    <Architecture-Urbanisme>
    <themes>Architecture-Urbanisme<themes>
    <nom>DSC_0729<nom>
    <bd>
    <fichiers>DSC_0729.jpg</fichiers>
    </bd>
    <Web>
    <fichiers>DSC_0729.jpg</fichiers>
    </Web>
    </Architecture-Urbanisme></doc>
    Cela fait pas mal de temps que cette fonction me pose problème et j'ai vraiment besoin d'un pti coup de pouce
    merci beaucoup

  3. #3
    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
    Il faut être strict avec votre arborescence, c.a.d. ne pas sauter de niveau, et le fait d'avoir un niveau de l'arbre avec des noms variables n'est pas gênant...
    On peut toujours mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    *[starts-with(name(),'DSC_')]
    Classiquement, je me contente pour une arborescence régulière, c.a.d. où un type d'élément n'apparaît toujours qu'à un seul niveau de l'arbre, d'un <xsl:template match="/"> et d'autant de <xsl:for-each> que nécessaire...

  4. #4
    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 réponse alain.couthures, mais cependant toutes mes images n'auront pas le même nom, et les catégories changent également.

    je pense complètement changer de méthode, le xml et xsl ne semble pas adaptée à ce que je désire, je vais tous stockée dans des array

    merci beaucoup d'avoir pris le temps de regarder mon problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] xml vers sql
    Par ldiaz dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 03/07/2007, 09h55
  2. [XSLT] XML vers HTML
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/04/2007, 08h54
  3. [XSLT]XML vers tableau html
    Par lcdDEV dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 27/10/2006, 16h55
  4. Importation xml vers sql server
    Par nicko5959 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/01/2006, 09h06
  5. [XSLT] XML vers XML
    Par ren0 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/10/2004, 12h54

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