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] problème d'accent pour HTML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut [XSLT] problème d'accent pour HTML
    Bonjour,

    J'ai un fichier XML contenant des valeurs accentuées.
    Extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <rightTocEntry useArg1AsLeftTitle="yes">
                         <title>Sous-système de Lancement Vertical (SLV)</title>
                         <link func="open_pub" arg1="SSM230_002_FR" arg2="*use_title"/>
                      </rightTocEntry>
    J'ai un fichier XSL qui va me générer un href :
    Extrait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xsl:attribute name="href">
                   <xsl:text>javascript:parent.</xsl:text>
                   <xsl:value-of select="./link/@func"/>
    	       <xsl:text>(</xsl:text>
                   <xsl:if test="./link/@arg1">
                    <xsl:text>'</xsl:text>
    	        <xsl:value-of select="./link/@arg1"/>
                    <xsl:text>'</xsl:text>
    	       </xsl:if>
                   <xsl:if test="./link/@arg2">
                    <xsl:if test="./link/@arg1">
                     <xsl:text>,</xsl:text>
                    </xsl:if>
                    <xsl:text>'</xsl:text>
    Comme l'encoding est iso-8859-1, le fait d'utiliser un href entaîne la conversion des codes html accentués en caractères ISO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                 <td valign="top"><a href="javascript:parent.open_pub('SSM230_002_FR','Sous-syst%C3%A8me de Lancement Vertical (SLV)');"><img src="lib/item.gif"></a></td>

    Et lorsque j'affiche la page du lien j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sous-système de Lancement Vertical (SLV)
    Si qq1 peut me donner un coup de main.

    Merci

  2. #2
    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
    bizarre cela fonctionne très bien chez moi, as tu un exemple de fichier obtenu qui te pose problème (as tu un lien url à nous fournir)'expérience je sais que ce genre de problème provient:
    1. de l'encoding utilisé lors de la transformation xslt
    2. de l'encoding du fichier source
    3. du paramétrage du naviguateur

  3. #3
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    il faut que :
    -le XML
    -le XSL
    -la propriete de ton tranformer ( c'est a dire l encodage de ton fichier de sortie)

    soient au meme format

    est ce le cas ?

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    L'encoding du XML : 'utf-8'
    L'encoding du XSL : 'iso-8859-1'
    L'entête du HTML généré : 'iso-8859-1'

    Merci

  5. #5
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    donc choisi un format identique pour tous les fichiers,
    teste
    et dis nous

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    J'ai fait les modifications mais j'ai le même résultat.

    Fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?>
    <toc>
       <title>PAAMS (FR)</title>
       <section>
    Fichier XSL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    	version="1.0">
    <xsl:output method="html" encoding="utf-8"/>
    Le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sous-système de Lancement Vertical (SLV)

    Merci

  7. #7
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui mais attend confond pas l encoding et le format ....

    l encoding la c'est ok mais y as aussi le format des fichiers ... .

    avec un éditeur de texte il te faut mettre le XML et le XSL au format utf-8 ....
    soit depuis un onglet "format" ....
    soit en enregistrant le fichier " enregistrer sous " et choisir dans les options d 'enregistrement : format : utf-8

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Avec textpad je viens de sauvegarder mes 2 fichiers en UTF8
    et lorsque je refais le traitement, j'ai toujours un mauvais affichage.

  9. #9
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    si tu es sur d avoir pris les deux bon fichiers ( utf-8 ) je vois pas .....
    dsl

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Merci pour les conseils

    Ce que je trouve bizarre :
    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
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
             <xsl:for-each select="rightTocEntry">
              <tr>
               <td valign="top">
     
                <a>
    	       <xsl:if test="./link/@func = 'notOpen_pub'">
    		  <xsl:attribute name="style">
    		   <xsl:text>cursor:default;</xsl:text>
    		  </xsl:attribute>
    	      </xsl:if>
                  <xsl:attribute name="href">
                   <xsl:text>javascript:parent.</xsl:text>
                   <xsl:value-of select="./link/@func"/>
    	       <xsl:text>(</xsl:text>
                   <xsl:if test="./link/@arg1">
                    <xsl:text>'</xsl:text>
    	        <xsl:value-of select="./link/@arg1"/>
                    <xsl:text>'</xsl:text>
    	       </xsl:if>
                   <xsl:if test="./link/@arg2">
                    <xsl:if test="./link/@arg1">
                     <xsl:text>,</xsl:text>
                    </xsl:if>
                    <xsl:text>'</xsl:text>
    		<xsl:choose>
    		 <xsl:when test="./link/@arg2 = '*use_title'">
    	          <xsl:value-of select="translate(./title/text(),$quots,'``')"/>
    		 </xsl:when>
    		 <xsl:otherwise>
    	          <xsl:value-of select="./link/@arg2"/>
    		 </xsl:otherwise>
    		</xsl:choose>
                    <xsl:text>'</xsl:text>
    	       </xsl:if>
                   <xsl:if test="./link/@arg3">
                    <xsl:if test="./link/@arg1 or ./link/@arg2">
                     <xsl:text>,</xsl:text>
    		</xsl:if>
                    <xsl:text>'</xsl:text>
    	        <xsl:value-of select="./link/@arg3"/>
                    <xsl:text>'</xsl:text>
    	       </xsl:if>
    	      <xsl:text>);</xsl:text>
                 </xsl:attribute>
    	     <xsl:choose>
    		<xsl:when test="./link/@func = 'notOpen_pub'">
                       <img src="lib/item_not.gif"/>
    		</xsl:when>
    		<xsl:otherwise>
                       <img src="lib/item.gif"/>
    		</xsl:otherwise>
    	     </xsl:choose>
              </a>
             </td>
             <td valign="top">
    	     <xsl:choose>
    	      <xsl:when test="@useArg1AsLeftTitle = 'yes'">
    		<xsl:value-of select="./link/@arg1"/>
    	      </xsl:when>
    	      <xsl:otherwise>
                   <xsl:value-of select="./title/text()"/>
    	      </xsl:otherwise>
    	     </xsl:choose>
             </td>
             <td valign="top">
                <xsl:choose>
    	     <xsl:when test="@useArg1AsLeftTitle = 'yes'">
    		<xsl:value-of select="./title/text()"/>
    	     </xsl:when>
    	     <xsl:otherwise>
    	      <xsl:text>&#xA0;</xsl:text>
    	     </xsl:otherwise>
                </xsl:choose>
               </td>
              </tr>
             </xsl:for-each>

    Avec cette feuille de style j'obtienne :
    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
          <div id="RF9">
             <h2>LANCEUR VERTICAL PAAMS</h2><br><table WIDTH="95%" BORDER="0">
                <col COLWIDTH="5%" ALIGN="left">
                <col COLWIDTH="10%" ALIGN="left">
                <col COLWIDTH="85%" ALIGN="left">
                <tr>
                   <td valign="top"><a href="javascript:parent.open_pub('SSM230_002_FR','Sous-syst%C3%A8me de Lancement Vertical (SLV)');"><img src="lib/item.gif"></a></td>
                   <td valign="top">SSM230_002_FR</td>
                   <td valign="top">Sous-syst&egrave;me de Lancement Vertical (SLV)</td>
                </tr>
                <tr>
                   <td valign="top"><a href="javascript:parent.open_pub('EQM231_002_FR','Module de Lancement Vertical (MLV A50)');"><img src="lib/item.gif"></a></td>
                   <td valign="top">EQM231_002_FR</td>
                   <td valign="top">Module de Lancement Vertical (MLV A50)</td>
                </tr>
    D'un coté le titre a les caractères accentués avec '&agrave;' et le même titre dans un href avec '%C3%A8' je pense que c'est le fait d'utiliser href qui réinterprète la donnée afin d'éviter d'avoir des '&' dans l'url

    Merci

  11. #11
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    40
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 40
    Points : 37
    Points
    37
    Par défaut
    Ce problème d'accents m'est aussi arrivé quelques fois...

    Ce que j'en ai retenu, c'est qu'une fois qu'un fichier a été enregistré en iso-8859-1, il en "garde des traces", si vous me permettez l'expression...

    Donc si tu réécris les accents de ton fichier, ça pourrait passer...

    Personnellement, lorsque je le peux, je préfère utiliser l'encodage iso-8859-1 lorsqu'il y a des accents... J'ai de meilleures expériences avec.

    En espérant que ça puisse aider...



    Adrien

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Faut aussi considérer le codage que le navigateur pense avoir devant lui.
    Il y a des déclarations html pour le forcer.

  13. #13
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    Qu'elles sont ces codages html ?

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Regarde l'exemple pour HTML 4.01 :
    http://www.webstandards.org/learn/ar...skw3c/dec2002/

    Mais tu devrais déja regarder ce que ton navigateur prend par défaut.

  15. #15
    Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 64
    Points : 42
    Points
    42
    Par défaut
    j'ai écris une fonction de décodage

    Merci à ceux qui m'ont aidé

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/09/2011, 12h21
  2. [DOM] Problème d'accent pour un mot venant d'un xml
    Par pierrot10 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/03/2010, 00h01
  3. [XSLT] Problème d'accent
    Par henri93 dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 14/01/2010, 15h06
  4. Problème d'accents pour site
    Par yohan0262 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 22/08/2008, 14h34
  5. [XSLT] application d une xslt et problème d'accents
    Par lanfeust23 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 26/07/2004, 13h08

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