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


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut [XSLT] Problème d'accent
    Bonjour,

    Voilà mon problème :
    Un extrait du fichier XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <FIGURE ID="FIG-13">
    <TITLE>INSTALLATION ÉQUIPEMENTS À BORD </TITLE>
    <GRAPHIC BOARDNO="image.jpg"/>
    </FIGURE>
    Le fichier HTML généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <P>La  <A href="javascript:parent.displayIllus('file://image.jpg/','FIGURE 1 - INSTALLATION %C3%89QUIPEMENTS %C3%80 BORD ','');parent.showItemIllus('');"> (cf. fig. 1)</A> décrit l'installation
    des équipements à bord.</P>
    </P>
    Dans la feuille de style j'ai une fonction qui me permet de convertir en MAJUSCULE et de ne pas interpréter certains caractères:
    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
    <xsl:template name="L2U">
    <xsl:param name="text-content"/>
    	<xsl:choose>
    		<xsl:when test="contains($text-content, 'É')">
    			<xsl:call-template name="L2U">
    				<xsl:with-param name="text-content">
    					<xsl:value-of select="substring-before($text-content,'É')"/>
    				</xsl:with-param>
    			</xsl:call-template>
    			<xsl:text>É</xsl:text>
    			<xsl:call-template name="L2U">
    				<xsl:with-param name="text-content">
    					<xsl:value-of select="substring-after($text-content,'É')"/>
    				</xsl:with-param>
    			</xsl:call-template>
    		</xsl:when>
    ...
    		<xsl:otherwise>
    			<xsl:value-of select="translate($text-content,
    				'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
    		</xsl:otherwise>
    	</xsl:choose>
    Le problème est qu'au final (HTML) les caractères &#201; est devenu %C3%89 et apparait bizarrement en sortie.

    J'ai plusieurs problèmes avec les caractères accentués, s'il y a de la prose dessus (en français si possible) je suis preneur.
    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Précise le bon charset dans ton header html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>

  3. #3
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    En fait après avoir tracé la composition, je me suis aperçu que lorsque je construit une ancre (<A ) à laquelle j'associe un attribut 'href' les caractères accentués sont interprétés pourquoi ?
    Si j'insère la même chaîne accentuée derrière la fin d'ancrage '</A>' la chaîne est correcte.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Ça ressemble à une fonctionnalité spécifique, de détecter quand la transformation se fait vers du HTML, et qu'on est en train de fabriquer une URL.

    Peut-être que ton outil de transformation XSL fait ça. C'est quoi ?

    (En tout cas si c'est ça, ça me semble un peu abusé. Les URLs peuvent contenir des caractères non-ASCII, c'est à charge du programme qui fera la communication réseau, d'échapper ce qui doit l'être.)

  5. #5
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    La feuille de style construit un appel à une fonction javascript d'affichage d'une image, dans laquelle je passe en paramètre le nom de l'image et sa localisation, ainsi que le titre que je veux voir apparaître au dessus de l'image.
    Et c'est ce titre qui contient des caractères accentués, qui sont mal interprétés lors de la composition.

    Ex
    <A hres="javascript.displayImage('img.jpg', '%C3%89QUIPEMENT')"> xxxxx </A>&Eacute;QUIPEMENT

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    C'est pas ma question. Ta feuille de style, elle est exécutée par quoi ?

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Tu utilises bien la fonction unescape() lors de l'écriture de ta chaîne ?

  8. #8
    Membre régulier
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Points : 88
    Points
    88
    Par défaut
    je ne connais pas cette fonction

Discussions similaires

  1. [XSLT] problème d'accent pour HTML
    Par best94 dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 01/08/2008, 14h55
  2. [XML] [XSLT] Problème d'encodage des accents
    Par missllyss dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 12/06/2008, 16h01
  3. [XSLT][ASP] Problème d'accent et de codage
    Par yonialhadeff dans le forum ASP
    Réponses: 2
    Dernier message: 09/02/2007, 03h05
  4. [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
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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