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 :

problème avec ma Template


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : Autre

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 13
    Points : 8
    Points
    8
    Par défaut problème avec ma Template
    Bonjour,

    Mon but est que je n'est pas a dire a chaque fois que j'ai une table (exp table1, table2 ...) mais l'avoir dynamiquement et cela grâce a une variable.
    J'ai arrivé a lire le nbre de table qu'il y a avec la variable count et de l'afficher mais mon problème c'est que je doit l’écrire en dure j'ai pas su comment mettre la variable pour qu'elle puisse lire sachant que le probleme je crois qu'il vient du fait que c'est une node child bref avec le code sa sera miex :p le voila
    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?xml version="1.0" encoding="utf-8"?>
     
    <!DOCTYPE xsl:stylesheet  [
    	<!ENTITY nbsp   "*">
    	<!ENTITY copy   "©">
    	<!ENTITY reg    "®">
    	<!ENTITY trade  "™">
    	<!ENTITY mdash  "—">
    	<!ENTITY ldquo  "“">
    	<!ENTITY rdquo  "”"> 
    	<!ENTITY pound  "£">
    	<!ENTITY yen    "¥">
    	<!ENTITY euro   "€">
    ]>
     
    <xsl:stylesheet version="2.0" xmlns:exsl="http://exslt.org/common" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
     
    <xsl:template match="/rapport">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     
    <style type="text/css">
     
    </style>  
    </head>
     
     
      <body>
     
    <h5><xsl:value-of select="societe"/></h5>
    <h5><xsl:value-of select="nonUtilisateur"/>**
    <xsl:value-of select="date"/>*
    <xsl:value-of select="horloge"/></h5>
    <h6 align="center"><u><xsl:value-of select="titre"/></u></h6>
     
     
      <xsl:variable name="nomTable" select="'table'" />
      <xsl:variable name="nbTable" select="count(//CODE_TABLE)" />
      <xsl:variable name="nameOfTable" select="concat('table',$nbTable)" />
      	<xsl:value-of select="$nameOfTable"></xsl:value-of>
     
     
      	<xsl:variable name="tableNode" select="table2" />        //c 'est ici mon prbleme elle est en dure"table2" non pas une variable pour que sa soit dynamique
      <!--xsl:for-each select="starts-with(table,exsl:node-set(current())))"-->
      	<xsl:call-template name="tableTemplate">
      		<xsl:with-param name="tableTitle" select="exsl:node-set($tableNode)"></xsl:with-param>
      	</xsl:call-template>
     <!--/xsl:for-each-->
     
      </body>
      </html>
    </xsl:template>
     
    <xsl:template name="tableTemplate">
    	<xsl:param name="tableTitle"></xsl:param>
    	<h6>Table code :<xsl:value-of select="exsl:node-set($tableTitle)/CODE_TABLE"/>****
    	<xsl:value-of select="exsl:node-set($tableTitle)/LIB_TABLE"/></h6>
    	<h6>Format des codes instances :**<xsl:value-of select="exsl:node-set($tableTitle)/FORMAT_TABLE"/></h6>
    </xsl:template>
     
     
    </xsl:stylesheet>

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    J'ai arrivé a lire le nbre de table qu'il y a avec la variable count et de l'afficher mais mon problème c'est que je doit l’écrire en dure j'ai pas su comment mettre la variable pour qu'elle puisse lire sachant que le probleme je crois qu'il vient du fait que c'est une node child...
    Je n'ai pas bien compris la description, sans doute pour une partie à cause de mon maîtrise de la langue...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      	<xsl:variable name="tableNode" select="table2" />        //c 'est ici mon prbleme elle est en dure"table2" non pas une variable pour que sa soit dynamique
      <!--xsl:for-each select="starts-with(table,exsl:node-set(current())))"-->
    Ceci, ne pas plus clair. Si, dans ce cas concret, vous voudriez dire qu'il y aille deux tableaux dont le nombre dans "table2" qui correspond à $nbTable et le préfixe table correspond à $nomTable; et par conséquence, table2 correspond à $nameOfTable qui est bien entendu un texte et non pas un xpath. Pour transformer du texte à un xpath, vous pouvez regarder à la fonction d'extension evaluate() toujours de Exslt mais cette fois dans le namespace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xmlns:dyn="http://exslt.org/dynamic"
    ref http://www.exslt.org/dyn/index.html
    Si cela correspond correctement à ce que vous avez - je ne suis pas sûr du tout, la variable peut s'écrire comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:variable name="tableNode" select="dyn:evaluate($nomTable)" />
    Je fais beaucoup d'extrapolation... mais vous pouvez essayer et à voir si ça aide.

    ps : Si le xslt est vraiment de la version 2.0, l'extension node-set() ne devrait pas être nécessaire, donc, je suppose xslt 1.0.

Discussions similaires

  1. Problème avec feuille template
    Par pierre.coudert dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 19/01/2007, 10h00
  2. Réponses: 5
    Dernier message: 08/12/2006, 14h42
  3. [XSLT] Problème avec apply-templates
    Par NeoMan dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 29/12/2005, 14h45

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