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] Fonction document()


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 48
    Points : 20
    Points
    20
    Par défaut [XSLT] Fonction document()
    Bonjoir.

    Problème:

    J'ai donc un problème avec la fonction document().

    Scénario:
    Je suis en train de faire un programme qui liste dans un fichier XMLles fichiers d'un répertoire. Pour chaque fichier, un fichier contenant des informations sur celui-ci est créé dans un répertoire "about" (Ex: Pour le fichier "machin truc.iso", un fichier "./about/machin truc.iso.xml" est créé). À l'aide d'une feuille de style XSTL je souhaite afficher une page HTML contenant le contenu des deux fichiers XML.


    Le fichier contenant la liste ressemble à ce qui suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <database>
    <file name="7072ef2f23b99b6f531b1b222c960c9cee61862b">
            <comment><![CDATA[./about/audio dump.wav.xml]]></comment>
    </file>
    </database>
    Le fichier "./about/audio dump.wav.xml" la liste ressemble à ce qui suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <about>
      <comment><![CDATA[
        Reply by 'creuvard'
        et la ?
      ]]></comment>
    </about>
    La feuille XSLT ressemble à ce qui suit:
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" cdata-section-elements="comment title path"/>
    <xsl:template match="/database" >
    <database>
    <xsl:apply-templates select="file/comment" />
    </database>
    </xsl:template>
     
    <xsl:template match="comment" >
            <xsl:copy-of select="document('./about/audio dump.wav.xml')"/>
            <xsl:copy-of select="node()"/>
    </xsl:template>
     
    </xsl:stylesheet>
    Mon problème est que lorsque le fichier (En l'ocurence "audio dump.wav") contient un espace, il refuse de me m'afficher son contenu.

    Ce que j'ai lue pour tenter de résoudre mon problème:
    • J'ai fait un recherche sur le forum " XSL/XSLT/XPATH" avec comme mot clef "document()".
    • J'ai lu le document suivant -> http://xmlfr.org/w3c/TR/xslt/#function-document
    • J'ai également essayé la fonction "document('./about/audio dump.wav.xml')", sans plus d'effet.


    Est-ce que j'ai ratté un truc ou mal lue la doc ?
    J'espére avoir pondue un post agréable à lire qui vous donne envie de me donner la réponse.

    Merci.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Il faut peut-être URL-encoder le chemin passé à "document" ?
    Remplacer les espaces par des "%20".

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Merci pour ta réponse remy72.

    Cela semble fonctionner en changant les espaces par des %20.

    Je peux pas dire que ca m'arrange de transformer les espaces, mais bon.


    Merci.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2009
    Messages : 31
    Points : 35
    Points
    35
    Par défaut
    Je peux pas dire que ca m'arrange de transformer les espaces, mais bon.
    Les spécifications de "document" mentionnent que l'objet est décrit via une URI; d'où la nécessité de l'URL-encoder.

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

Discussions similaires

  1. [XSLT] fonction document() et chemins relatifs
    Par Loceka dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 21/09/2009, 15h26
  2. XSLT et XMLType: la fonction document();
    Par faico dans le forum Débuter
    Réponses: 0
    Dernier message: 20/04/2008, 12h45
  3. Réponses: 6
    Dernier message: 13/11/2007, 09h28
  4. [XSLT] pb fonction Document() avec variables
    Par Quentor dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/08/2007, 13h59
  5. Réponses: 3
    Dernier message: 16/05/2007, 16h57

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