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

XMLRAD Discussion :

Transformation XSL et caractères spéciaux


Sujet :

XMLRAD

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Points : 55
    Points
    55
    Par défaut Transformation XSL et caractères spéciaux
    Bonjour,

    J'ai le code suivant dans mon XSL :
    <a href="{/document/Params/RECHERCHE}">
    Relancer la recherche :
    <xsl:value-of select="/document/Params/RECHERCHE"></xsl:value-of>
    </a>

    Avec RECHERCHE = à
    Le premier /document/Params/RECHERCHE donne Ã
    Le second donne bien à

    Connaissez vous une autre syntaxe que
    <a href="{/document/Params/RECHERCHE}">
    qui me permettrait de ne plus avoir ce à mais un à ?

    Sylvain L.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    Louche ton histoire. As-tu bien précisé l'encoding de ton fichier XSL ?
    Julien C.

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Points : 55
    Points
    55
    Par défaut
    Oui, j'ai précisé ISO-8859-1

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 85
    Points : 99
    Points
    99
    Par défaut
    J'ai testé et je reproduis le même problème. Je pense que le parseur MSXML, voit que ton caractère "à" étant un caractère spécial, l'encode lorsqu'il est dans une URL, puisqu'il a repéré cela dans la valeur d'un "href"... Or il mets dans le code source "%C3%A0" ce qui correspond au caractère "Ã".. Il effectue une conversion en UTF-8 le bougre...

    Pour résoudre ton problème, je ne vois qu'une solution. Dans ton BeforeXMLGram, tu fais une fonction qui remplace tous les caractères spéciaux de ton champ "RECHERCHE" par leur code correspondant (à = %E0). Tu retournes la chaine obtenue dans le champs "RECHERCHE_ENCODED". Ensuite, dans ton XSL, tu utilises la valeur de "RECHERCHE_ENCODED" pour la valeur du "href" de ton lien, et "RECHERCHE" pour le libellé du lien. Voilà la fonction (en Delphi) pour encoder une chaine en URL :

    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
    function urlencode&#40;STR &#58; string&#41;&#58; string;
    var
      URLED_STR &#58; string;
      i, xl&#58; integer;
    begin
      URLED_STR &#58;= '';
      for i &#58;= 1 to length&#40;STR&#41; do
      begin
        xl &#58;= ord&#40;STR&#91;i&#93;&#41;;
        if &#40;&#40;&#40;xl >= 65&#41; and &#40;xl <= 90&#41;&#41; or &#40;&#40;xl <= 57&#41; and &#40;xl >= 48&#41;&#41; or &#40;&#40;xl <= 122&#41; and &#40;xl >= 97&#41;&#41;&#41; then
          URLED_STR &#58;= URLED_STR + MidStr&#40;STR,i,1&#41;
        else
          URLED_STR &#58;= URLED_STR + '%' + IntToHex &#40;xl,2&#41;;
      end;
      Result &#58;= URLED_STR;
    end;
    A noter, qu'il faudra rajouter l'unité "StrUtils" dans la clause "uses". J'ai testé, ca marche niquel.

    Voilà ! A+
    Julien C.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2002
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 92
    Points : 55
    Points
    55
    Par défaut
    Ca fonctionne mieux maintenant, merci

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

Discussions similaires

  1. [XSL] Caractères spéciaux
    Par Eylir dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 13/12/2007, 22h16
  2. Réponses: 1
    Dernier message: 26/09/2007, 20h38
  3. [SQL] Caractères spéciaux transformés
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 26
    Dernier message: 14/08/2006, 19h06
  4. [XSL] Caractères spéciaux...
    Par Etanne dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/09/2005, 12h42
  5. [XSL] Transformation xsl et jeu de caractères cyrillique
    Par Maximil ian dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/09/2005, 12h41

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