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 :

Insérer un point d'interrogation dans un string [XPATH 2.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut Insérer un point d'interrogation dans un string
    Bonjour

    J'ai à peine fini de lire XSL pour les nuls..

    J'essaie de générer un flux EDI en XSLT. EDI utilise le "?" comme caractère d'échappement. Donc, avant d'envoyer le flux, je veux "échapper" les caractères spéciaux EDI:
    ":" devient "?:"
    "+" devient "?+"
    "'" devient "?'" (simple quote)
    et "?" devient "??"

    J'ai essayé beaucoup de choses sans arriver au résultat escompté:
    fonction Xpath "replace" (je suis perdu dans les Regexp)
    Template récursive qui remplace une séquence par une autre
    Etc

    Quelqu'un aurait-il une solution miracle (j'allais dire même si je ne la comprends pas...)?

    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    ben avec un replace ça devrait le faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="replace(., '([:+\'?])', '$1?')"/>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Merci Loceka, çà marche quasi bien.

    Il y a juste l'apostrophe dans la liste des caractères à remplacer qui pose problème:
    XPST0003: XPath syntax error at char 21 on line 46 in
    {replace ($text,'([:+\'?] }: expected ")", found "?"
    La quote ferme le deuxième paramètre de replace. Y' sûrement un truc??

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Le plus simple, c'est de mettre le paramètre entre double quotes " au lieu de simple quotes '

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juillet 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel

    Informations forums :
    Inscription : Juillet 2011
    Messages : 5
    Par défaut
    Merci
    J'avis testé dans ce sens, mais je dois avoir deux bras gauches

    En fait, il faut encadrer l'attribut select par des simples quotes, et encadrer les paramètres de replace par des doubles quotes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select='replace($text,"([:+&apos;?])", "?$1")'/>
    Ca marche.
    Merci à vous deux; je passe à résolu.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/01/2009, 12h47
  2. Point d'interrogation dans le menu systeme
    Par [Mel] dans le forum MFC
    Réponses: 1
    Dernier message: 29/03/2007, 11h59
  3. Point d'interrogation dans UPDATE
    Par the_bmo dans le forum MySQL
    Réponses: 1
    Dernier message: 18/10/2006, 11h58
  4. Des points d'interrogation dans le retour js
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/11/2005, 16h25

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