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 :

[Xpath] chemin mal interpreté


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Points : 30
    Points
    30
    Par défaut [Xpath] chemin mal interpreté
    Bonjour,

    J'ai un petit soucis, j'ai repris les xsl d'un collègue et en ai fait des nouveaux basé plus ou moins sur les siens

    Cependant, il utilisait comme appel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <xsl:apply-templates select*[1]"/>
    <xsl:apply-templates select*[2]"/>
    <xsl:apply-templates select*[3]"/> ....
    Tandis que moi je trouve plus pratique d'utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <xsl:apply-templates select="./dateIntervention"/>
    <xsl:apply-templates select="./dateFinIntervention"/>
    <xsl:apply-templates select="./urgence"/>, ....
    La pratique la dedans est que dès que je dois insérer un nouveau champ entre par exemple "dateIntervention" et "dateFinIntervention" je ne dois plus rien changer .... je ne dois pas commencer à décaler le 2 devient le 3, le 3 devient le 4 et ainsi de suite .... ==> gain de temps pour moi .... j'ai changé tous ces xsl afin de les mettre sous cette forme là lors d'une grosse mise à jour ....

    Par contre, je rencontre un autre problème .... qui jusqu'à présent ne m'avais pas interpelée. Dès que j'utilise mon annotation (avec le nom de mon attribut) oxygen ne "traduis" pas les valeurs visées.
    je m'explique, voilà plus ou moins mon xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
     <dateIntervention label="Date intervention" style="txt">03/05/07</dateIntervention>
     <dateFinIntervention label="heure" style="txt">08h30</dateFinIntervention>
     <urgence label="Urgence" style="chk">on</urgence>
    Si je veux récupérer les champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    <fo:table-row>
      <fo:table-cell>  
         <fo:block>
             <xsl:value-of select="./dateIntervention/@label"/>
         <fo:block>
      </fo:table-cell>
      <fo:table-cell>  
         <fo:block>
             <xsl:value-of select="./dateIntervention/child::text()"/>
         <fo:block>
      </fo:table-cell>
    </fo:table-row>
    Si j'écris comme ça, ça ne marche pas!! tandis que si je laisse exactement pareil mais que je mets ="*[1]/child::text()" ça fonctionne!

    Attention, autre chose qui est perturbant aussi est que si je garde ma configuration à moi donc "nommée" et que je mets ce xsl sur le serveur tomcat que je le fais fonctionner là ..... ça marche !!??? Il traduit bien mes Xpath

    Et voilà pourquoi je ne m'en était pas faite je pensais simplement que c'était mon oxygen qui était mal configuré .... maintenant un autre de mes collègues doit reprendre ces xsl et lui doit les transformer en TXT (moi c'est en PDF) mais son problème à lui est que ça fait comme dans Oxygen c'est à dire que rien n'est noté!!??

    J'aimerai savoir à quoi c'est du, si il y a une solution du moins pour lui car moi j'ai plus de 600 xsl qui sont fait de cette manière... je me vois mal les corriger un par un ...

    D'avance je vous remercie et j'espère que j'ai été claire parce que ce n'est pas facile à expliquer .....

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    c'est normal que dans ton XML l'élément s'appelle 'dateInterv' et que dans ton expression XPath tu utilises 'dateIntervention' ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    ah oui j'ai juste oublié en recopiant ... je voulais mettre des champs plus clairs

    J'ai réédité ...

  4. #4
    Membre éprouvé
    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
    Points : 1 063
    Points
    1 063
    Par défaut
    une autre question
    pourquoi tu utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             <xsl:value-of select="./dateIntervention/child::text()"/>
    et pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
             <xsl:value-of select="./dateIntervention"/>

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Points : 30
    Points
    30
    Par défaut
    C'est pareil, que ce soit un ou l'autre souvent j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <xsl:value-of select="./dateIntervention/child::text()"/>
    lorsque je compare une chaine, j'ai pris ici cet exemple mais j'utilise aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <xsl:value-of select="./dateIntervention"/>

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/09/2007, 11h39
  2. XML mal interpreté dans la reponse SOAP
    Par biozaxx dans le forum Services Web
    Réponses: 2
    Dernier message: 04/07/2007, 14h30
  3. [XPath] chemin avec critères spécifiques
    Par loic_86 dans le forum XSL/XSLT/XPATH
    Réponses: 21
    Dernier message: 05/03/2007, 11h21
  4. [XPath] Chemin Fonctionel
    Par omman95 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 15/12/2006, 12h27
  5. [XPATH] XPath dû mal de faire le tri des API
    Par tralloc dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 27/04/2006, 00h07

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