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 :

Pseudo-imitation d'une BDD et utilisation


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Pseudo-imitation d'une BDD et utilisation
    Bonsoir tout le monde,

    je suis face à un problème.

    J'ai un fichier XML de ce type
    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
     
    <source>
      <files>
        <file>
          <name>blabla</name>
          <folder>1</folder>
        </file>
        <file>
          <name>toto</name>
          <folder>2</folder>
        </file>
      </files>
      <folders>
        <folder id="1">/home</folder>
        <folder id="2">/var/log</folder>
      </folders>
    </source>
    Mon problème est lors de l'affichage des fichiers, d'afficher le nom du dossier à la place de son id.
    Bien évidemment, ma façon de procéder n'est pas forcément la meilleure,
    mais c'est ce que j'ai trouvé de mieux pour simuler une BDD dans un fichier XML.
    Or, il faut que j'ai un rendu HTML de ce fichier, donc utilisation de XSLT.

    Pour l'instant, je fais ça en XSLT
    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    <xsl:output
        method="html"
        encoding="ISO-8859-1"
        doctype-public="-//W3C//DTD HTML 4.01//EN"
        doctype-system="http://www.w3.org/TR/html4/strict.dtd"
        indent="yes" />
     
    <xsl:template match="/">
        <html>
        <body>
            <h1>Mes fichiers</h1>
            <xsl:apply-templates />
        </body>
        </html>
    </xsl:template>
     
    <xsl:template match="file">
        <h2><xsl:value-of select="name" /></h2>
        <xsl:apply-templates />
    </xsl:template>
     
    <xsl:template match="folder">
        <div>
            <xsl:text>Dossier : </xsl:text>
            <xsl:variable name="folder_id"><xsl:value-of select="." /></xsl:variable>
            <xsl:value-of select="//source/folders/folder[@id=$folder_id]" />
        </div>
    </xsl:template>
     
    </xsl:stylesheet>
    Mais en procédant de cet façon, ma page prend beaucoup de temps
    à s'afficher (plus de 2 sec selon FasterFox) alors qu'elle est en local.

    Voilà, si vous pourriez m'aider, ou bien une meilleure solution à me proposer.
    Mon but est juste de pas avoir trop de redondance dans mon fichier XML,
    que si je dois changer un dossier, je ne le fais qu'à un seul endroit.

    Merci, à bientot

  2. #2
    Membre éprouvé 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
    Points : 1 247
    Points
    1 247
    Par défaut
    Vous devriez remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:value-of select="//source/folders/folder[@id=$folder_id]" />
    
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="/source/folders/folder[@id=$folder_id]" />
    car // provoque un parcours de toute l'arborescence à chaque fois ce qui peut entrainer un temps de traitement exponentiel !

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/05/2006, 14h59
  2. Comment utiliser une BDD GDB sans installer interbase ?
    Par QAYS dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2006, 15h31
  3. Utiliser des variables d'une BDD
    Par Ragnarok_1er dans le forum Access
    Réponses: 3
    Dernier message: 25/01/2006, 08h32
  4. Quel logiciel utiliser pour shématiser une bdd relationnel
    Par MrEddy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 22/07/2005, 16h42
  5. Utilisation d'une BDD pour (gros) logs
    Par Dinaïz dans le forum Décisions SGBD
    Réponses: 14
    Dernier message: 04/04/2005, 11h50

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