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 :

Problème d'encodage des accents lors de transformation d'un XSL en HTML à partir d'un XML [XSLT 2.0]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut Problème d'encodage des accents lors de transformation d'un XSL en HTML à partir d'un XML
    Bonjour,

    Je dois réaliser un fichier HTML grâce à un fichier XSL qui fait appel à du XML.

    C'est un catalogue de piscines qui reprend automatiquement les données du fichier XML grâce à un template "photo" et donc qui crée lui même les div par rapport au nombre de piscines qui sont dans le fichier XML. (div id catalogue qui contient Xdiv class photo en fonction du nombre)

    J'ai bien encodé le fichier XSL et le fichier XML en UTF-8 (XML : <?xml version="1.0" encoding="UTF-8"?> et XSL : <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>).

    Cependant lors de la transformation en HTML, les accents pètent.. (ex : PRÉSENTATION) et du coup je ne comprends pas pourquoi.. une idée ?

    [ame="http://www.flickr.com/photos/82018808@N02/7603009220/"]Capture d?e?cran 2012-07-19 a? 14.04.18 | Flickr - Photo Sharing![/ame]
    [ame="http://www.flickr.com/photos/82018808@N02/7603009298/"]Capture d?e?cran 2012-07-19 a? 14.03.46 | Flickr - Photo Sharing![/ame]
    [ame="http://www.flickr.com/photos/82018808@N02/7603009132/"]Capture d?e?cran 2012-07-19 a? 14.04.33 | Flickr - Photo Sharing![/ame]

    J'aimerais également pouvoir lui préciser un doctype, cependant quand j'ajoute le doctype dans le fichier XSL, une fois le fichier transformé en HTML, le catalogue de piscine bug complètement (juste la partie CSS des div catalogue et photo), savez-vous pourquoi ?

    [ame="http://www.flickr.com/photos/82018808@N02/7603021648/"]Capture d?e?cran 2012-07-19 a? 14.16.31 | Flickr - Photo Sharing![/ame]

    Dernière question, j'ai une "div id banniere" qui doit contenir ce texte en javascript : "<script type="text/javascript">
    document.write("<img name='pic' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"' alt='js'>");
    </script>"

    [ame="http://www.flickr.com/photos/82018808@N02/7603026706/"]Capture d?e?cran 2012-07-19 a? 14.18.00 | Flickr - Photo Sharing![/ame]

    Savez-vous comment je peux écrire cette partie de code javascript en XSL ?

    D'avance merci beaucoup pour votre réponse. (tous les liens sont les captures d'écran)

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    J'ai bien encodé le fichier XSL et le fichier XML en UTF-8 (XML : <?xml version="1.0" encoding="UTF-8"?> et XSL : <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0" xmlnssl="http://www.w3.org/1999/XSL/Transform" xmlnss="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>).
    C'est un bon début, mais cela ne suffit pas toujours. Il faut vérifier si tes fichiers ont bien été enregistrer en prenant en charge UTF-8 et il y a peu être ton processeur XSLT à configurer, vérifier aussi éventuellement les arguments de ta ligne de commande, ...

    J'aimerais également pouvoir lui préciser un doctype
    C'est avec l'élément xsl:output que tu peux faire cela.

    Savez-vous comment je peux écrire cette partie de code javascript en XSL ?
    Utilise les éléments xsl:element et xsl:attribut si ton code est fonction de tes données.
    Sinon, si ton code javascript ne change pas alors tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <![CDATA[ ton code javascript ici  ]]>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut
    Bonjour,

    merci pour ta réponse !

    - Pour la configuration du processeur, j'utilise XML Spy comme programme et je sais pas trop où chercher, je connais pas trop, mais je vais essayer d'exporer cette piste. (ca semble pourtant jouer selon l'image ci-dessous)

    [ame="http://www.flickr.com/photos/82018808@N02/7603224164/"]Capture d?e?cran 2012-07-19 a? 15.06.15 | Flickr - Photo Sharing![/ame]

    - Pour le doctype, c'est justement quand je lui ajoute un doctype avec xsl:output que ca fait bugger le css :/

    - Parfait mon code ne change pas, j'ai donc écrit :

    <![CDATA[<script type="text/javascript">
    document.write("<img name='pic' src='"+pic[mis[i]]+"' title='"+pic[mis[i]]+"' alt='js'>");
    </script>]]>

    Merci beaucoup

  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
    Citation Envoyé par elixes19 Voir le message
    - Pour la configuration du processeur, j'utilise XML Spy comme programme et je sais pas trop où chercher, je connais pas trop, mais je vais essayer d'exporer cette piste. (ca semble pourtant jouer selon l'image ci-dessous)
    Il est probable que la page HTML soit bel et bien en utf-8, mais que le navigateur n'ait aucun moyen de le savoir.

    Il faudrait que dans les <head>...</head> tu ajoutes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="utf-8" />
    Ça devrait améliorer les choses.

    Citation Envoyé par elixes19 Voir le message
    - Pour le doctype, c'est justement quand je lui ajoute un doctype avec xsl:output que ca fait bugger le css :/
    Attention, mettre un doctype ou ne pas en mettre, ça change pas mal de choses avec CSS.
    Lis ce que tu peux trouver sur l'opposition quirks mode/standart mode, et sur le doctype-switching.
    Il y a tout un monde là-dedans, mais en résumé, on ne fait pas le même CSS si on met un doctype ou si on n'en met pas.

    Au passage : il faut choisir. Soit tu fais du HTML, soit du XHTML. output="html" n'est pas adapté pour faire du XHTML. Les risques ne sont pas énormes, mais il y en a.
    Et soit dit en passant, le XHTML c'est dépassé. Du bon vieil HTML est plus habituel. XSLT ne peut pas générer de doctype HTML5, donc il faudra se rabattre sur un doctype HTML 4.01.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Je n'avais pas vu qu'il y avait des liens au dessus des images

    En fait, vu que utilise un navigateur, donc un serveur aussi j'imagine, c'est toute la chaîne qu'il faut érifier pour la prise en charge de l'UTF-8 : l'éditeur de XML, le fichier XML, le processeur XSLT, ton fichier HTML effectivement avec une balise meta, mais aussi l'en-tête de tes requêtes http, la prise en charge par ton navigateur (par exemple avec Firefox, Affichage >> Encodage des caractères) et éventuellement, puisque tu utilise du javascript, le code qui va avec. J'en ai oublié, mais c'est déjà pas mal

    Sinon pour générer du HTML5, il faudrait, à priori utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:output
         method="xml"
         doctype-system="about:legacy-compat"
         encoding="UTF-8"
         indent="yes" />

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2012
    Messages : 8
    Par défaut
    J'ai bien le <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">, donc c'est pas ça non plus je pense.

    Sinon je fais bien du html4.

    En fait je dois reproduire un fichier html avec le XSL. Le fichier HTML ayant comme doctype :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">

    J'aimerais bien pouvoir avoir le même doctype une fois la transformation XSL faite, mais c'est la que ca fait bugger le CSS.

    Pour l'encodage, ce n'est pas un problème de firefox (il gère de toute facon l'UTF-8), c'est une fois que je fais la transformation avec le fichier XSL qu'un fichier HTML avec les caractères qui pètent est généré. Donc ce serait plutot dans le programme XSL, mais comme j'ai dit avant, j'ai vérifié dans les options..

    Sinon y'a aussi un souci avec le javascript dans la div, il me remplace les "<" et ">" par des &lt; --'

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/05/2014, 13h38
  2. [Pygame] Problème d'encodage des accents
    Par fuyo2004 dans le forum Programmation multimédia/Jeux
    Réponses: 7
    Dernier message: 09/05/2010, 19h14
  3. [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
  4. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum Flash
    Réponses: 20
    Dernier message: 11/10/2006, 21h16
  5. [XML][Flash] Problème d'encodage des accents
    Par JoN28fr dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 06/10/2006, 16h45

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