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 Function] translate


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut [XSLT Function] translate
    Bonjour,

    Avant tout affichage, je désire tester si une balise est bien complétée...

    Exemple ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CodeEnregistrement>011</CodeEnregistrement>
    Exemple contraire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CodeEnregistrement></CodeEnregistrement>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CodeEnregistrement> </CodeEnregistrement>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <CodeEnregistrement>         </CodeEnregistrement>
    Ainsi, je fais une fonction qui enlève les espaces et teste ensuite que la chaîne n'est pas nulle.

    Cependant, sos la syntaxe xslt... Ce serait ce style, mais je n'arrive pas ensuite à faire l'applet de ma fonction correctement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <!-- fonction de formatage de la donnée -->
        <xsl:template name="formatData">
          <xsl:param name="data"></xsl:param>
          <xsl:variable name='sortie' select='translate( $data , " ","")' />
          <xsl:value-of select="$sortie"/>
        </xsl:template>
    Quelqu'un peut me filer un coup de pouce?


    Merci à vous,

    Virginie

  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,
    Citation Envoyé par pitit777 Voir le message
    Cependant, sos la syntaxe xslt... Ce serait ce style, mais je n'arrive pas ensuite à faire l'applet de ma fonction correctement...
    Je ne vois pas trop ce que tu entends par "applet de ta fonction"...

    En ce qui concerne la syntaxe XPath du test permettant de vérifier si un texte n'est pas vide, et ne contient pas que des espaces, elle est ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    normalize-space(ton_element) = ''
    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
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    applet --> appel ! pardon... lol

    je teste de suite ta fonction

    merci !!

  4. #4
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Ah oui mais le problème c'est aussi ma syntaxe...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <xsl:choose>
    <xsl:when test = "normalize-space(Emetteur/RaisonSociale) != ''">
                <xsl:value-of select="document($lang)/CFONB/ElementsCommuns/RaisonSociale" />:
                <b>
                   <xsl:value-of select="Emetteur/RaisonSociale" />
                </b>
                <br/>
    </xsl:when>
    </xsl:choose>
    Ceci ne fonctionne pas car je pense qu'il ne fait pas le test avec le contenu de Emetteur/RaisonSociale mais avec le texte lui même...

    une idée?

  5. #5
    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
    Tu peux donner un échantillon de ton document XML ?
    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

  6. #6
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    bien sûr...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Virement>
    <Emetteur>
    <CodeEnregistrement>03  </CodeEnregistrement>
    <CodeOperation>85</CodeOperation>
    <Montant>        </Montant>
    </Emetteur>
     
    ...
     
    </Virement>
    Vois-tu ce que je cherche à faire?

  7. #7
    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
    Citation Envoyé par pitit777 Voir le message
    Vois-tu ce que je cherche à faire?
    Il me semble, mais ce que je vois aussi c'est qu'il n'y a pas d'élément RaisonSociale qui soit fils de l'élément Emetteur, c'est normal ?
    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

  8. #8
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 88
    Points : 59
    Points
    59
    Par défaut
    Oui pardon... je t'ai donné un trop court extrait... oups

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Virement>
    <Emetteur>
    <CodeEnregistrement>03  </CodeEnregistrement>
    <CodeOperation>85</CodeOperation>
    <RaisonSociale>chef   </RaisonSociale>
     
    <Montant>        </Montant>
    </Emetteur>
     
    ...
     
    </Virement>
    Voilou

    Ainsi dans ce cas précis je veux afficher "chef" donc tout va bien, ma feuille de style enlève toute seule les espaces... (trop forte)

    Mais dans ce cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <Virement>
    <Emetteur>
    <CodeEnregistrement>03  </CodeEnregistrement>
    <CodeOperation>85</CodeOperation>
    <RaisonSociale>    </RaisonSociale>
     
    <Montant>        </Montant>
    </Emetteur>
     
    ...
     
    </Virement>
    J'aimerais que la raison sociale ne s'affiche pas dans le html...

    voilou, merci de ton aide,

    NiniE

Discussions similaires

  1. [XSLT] Call to undefined function xslt_create
    Par rudy207 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/04/2009, 17h27
  2. [XSLT][XPATH] Translate d'un concat pose probleme
    Par Thomus38 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 21/06/2007, 17h25
  3. Réponses: 2
    Dernier message: 04/01/2007, 10h37
  4. [XML] [XSLT] Fatal error: Call to undefined function xslt_create()
    Par fadex dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 05/07/2006, 12h34
  5. xslt-->"Translate" caractères spéciaux
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 10/10/2005, 14h40

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