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'encodage à l'extraction


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 71
    Par défaut [XSLT] Problème d'encodage à l'extraction
    Bonjour,

    Je me retrouve avec un problème très étrange. Lorsque j'extrais des données d'un fichier xml avec xsl les caractères accentués tels que "é" s'affiche à la condition qu'il soit dans une balise. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mabalisedextraction><h1>titre accentu&eacute;</h1></mabalisedextraction>
    me donne en résultat : "titre accentué"
    Les accents ne s'affiche carrément pas si ils ne sont pas dans une balise. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mabalisedextraction><h1>titre accentu&eacute;.</h1>&Ecirc;tre ou ne pas &ecirc;tre accentu&eacute;,tel est la question!</mabalisedextraction>
    me donne en résultat : "titre accentué. tre ou ne pas tre accentu, tel est la question!"

    J'ai affiché le code source renvoyé par mon navigateur... c'est simple, les caractères accentués ne sont tout bonnement pas présent... pas une trace, rien!

    Voici mon fichier xsl en résumé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output 
      method="xml"
      encoding="iso-8859-1"
      doctype-system="madtd.dtd" />
    	<xsl:template match="/">
    		<xsl:copy-of select="mabalisedextraction/node()" />
    	</xsl:template>
    </xsl:stylesheet>
    Voici mon fichier madtd.dtd :
    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
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <!ENTITY nbsp " ">
    <!ENTITY aacute "&#x00E1;"> <!ENTITY Aacute "&#x00C1;">
    <!ENTITY acirc  "&#x00E2;"> <!ENTITY Acirc  "&#x00C2;">
    <!ENTITY agrave "&#x00E0;"> <!ENTITY Agrave "&#x00C0;">
    <!ENTITY aring  "&#x00E5;"> <!ENTITY Aring  "&#x00C5;">
    <!ENTITY atilde "&#x00E3;"> <!ENTITY Atilde "&#x00C3;">
    <!ENTITY auml   "&#x00E4;"> <!ENTITY Auml   "&#x00C4;">
    <!ENTITY aelig  "&#x00E6;"> <!ENTITY AElig  "&#x00C6;">
    <!ENTITY ccedil "&#x00E7;"> <!ENTITY Ccedil "&#x00C7;">
    <!ENTITY eth    "&#x00F0;"> <!ENTITY ETH    "&#x00D0;">
    <!ENTITY eacute "&#x00E9;"> <!ENTITY Eacute "&#x00C9;">
    <!ENTITY ecirc  "&#x00EA;"> <!ENTITY Ecirc  "&#x00CA;">
    <!ENTITY egrave "&#x00E8;"> <!ENTITY Egrave "&#x00C8;">
    <!ENTITY euml   "&#x00EB;"> <!ENTITY Euml   "&#x00CB;">
    <!ENTITY iacute "&#x00ED;"> <!ENTITY Iacute "&#x00CD;">
    <!ENTITY icirc  "&#x00EE;"> <!ENTITY Icirc  "&#x00CE;">
    <!ENTITY igrave "&#x00EC;"> <!ENTITY Igrave "&#x00CC;">
    <!ENTITY iuml   "&#x00EF;"> <!ENTITY Iuml   "&#x00CF;">
    <!ENTITY ntilde "&#x00F1;"> <!ENTITY Ntilde "&#x00D1;">
     
    <!ENTITY Ograve "Ò">   <!ENTITY ograve "ò"> 
    <!ENTITY Oacute "Ó">   <!ENTITY oacute "ó">
    <!ENTITY Ocirc  "Ô">   <!ENTITY ocirc  "ô">
    <!ENTITY Ouml   "Ö">   <!ENTITY ouml   "ö">
    <!ENTITY Ugrave "Ù">   <!ENTITY ugrave "ù">
    <!ENTITY Uacute "Ú">   <!ENTITY uacute "ú">
    <!ENTITY Ucirc  "Ö">   <!ENTITY ucirc  "û">
    <!ENTITY Uuml   "Ü">   <!ENTITY uuml   "ü">
    Voici mon fichier xml en résumé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="iso-8859-1"?>
    <!DOCTYPE dtdsite SYSTEM "http://www.my-sion.ch/dtd.dtd">
    <mabalisedextraction>
        <h1>titre accentu&eacute;.</h1>&Ecirc;tre ou ne pas &ecirc;tre accentu&eacute;,tel est la question!
    </mabalisedextraction>
    Voici ma fonction php en résumé :
    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
     
    	$xml = new DOMDocument;
    	$xml->resolveExternals = TRUE;
    	$xml->substituteEntities = FALSE;
    	$xml->load($xmlFile);
     
    	$xsl = new DOMDocument;
    	$xsl->load($xslFile);
    	$xhtml = new XSLTProcessor;
     
    	//Affectation de la feuille de style
    	$xhtml->importStyleSheet($xsl);
     
    	// Transformation du document XML selon la feuille XSL
    	return($xhtml->transformToXML($xml));
    Voilà, vous savez tout... et j'avoue ne pas comprendre quel différence il y a entre un caractère accentué dans une balise et un autre hors balise...

    Merci d'avance pour vos lumières.
    Cordialement,
    Grégoire

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Vos entités sont-elles bien aussi définies dans le fichier dtd.dtd ?

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 71
    Par défaut
    Citation Envoyé par Gregco Voir le message
    Voici mon fichier madtd.dtd :
    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
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <!ENTITY nbsp " ">
    <!ENTITY aacute "&#x00E1;"> <!ENTITY Aacute "&#x00C1;">
    <!ENTITY acirc  "&#x00E2;"> <!ENTITY Acirc  "&#x00C2;">
    <!ENTITY agrave "&#x00E0;"> <!ENTITY Agrave "&#x00C0;">
    <!ENTITY aring  "&#x00E5;"> <!ENTITY Aring  "&#x00C5;">
    <!ENTITY atilde "&#x00E3;"> <!ENTITY Atilde "&#x00C3;">
    <!ENTITY auml   "&#x00E4;"> <!ENTITY Auml   "&#x00C4;">
    <!ENTITY aelig  "&#x00E6;"> <!ENTITY AElig  "&#x00C6;">
    <!ENTITY ccedil "&#x00E7;"> <!ENTITY Ccedil "&#x00C7;">
    <!ENTITY eth    "&#x00F0;"> <!ENTITY ETH    "&#x00D0;">
    <!ENTITY eacute "&#x00E9;"> <!ENTITY Eacute "&#x00C9;">
    <!ENTITY ecirc  "&#x00EA;"> <!ENTITY Ecirc  "&#x00CA;">
    <!ENTITY egrave "&#x00E8;"> <!ENTITY Egrave "&#x00C8;">
    <!ENTITY euml   "&#x00EB;"> <!ENTITY Euml   "&#x00CB;">
    <!ENTITY iacute "&#x00ED;"> <!ENTITY Iacute "&#x00CD;">
    <!ENTITY icirc  "&#x00EE;"> <!ENTITY Icirc  "&#x00CE;">
    <!ENTITY igrave "&#x00EC;"> <!ENTITY Igrave "&#x00CC;">
    <!ENTITY iuml   "&#x00EF;"> <!ENTITY Iuml   "&#x00CF;">
    <!ENTITY ntilde "&#x00F1;"> <!ENTITY Ntilde "&#x00D1;">
    
    <!ENTITY Ograve "Ò">   <!ENTITY ograve "ò"> 
    <!ENTITY Oacute "Ó">   <!ENTITY oacute "ó">
    <!ENTITY Ocirc  "Ô">   <!ENTITY ocirc  "ô">
    <!ENTITY Ouml   "Ö">   <!ENTITY ouml   "ö">
    <!ENTITY Ugrave "Ù">   <!ENTITY ugrave "ù">
    <!ENTITY Uacute "Ú">   <!ENTITY uacute "ú">
    <!ENTITY Ucirc  "Ö">   <!ENTITY ucirc  "û">
    <!ENTITY Uuml   "Ü">   <!ENTITY uuml   "ü">
    c'est mon fichier dtd en entier. Je ne pense pas avoir oublier qqch.

  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Oui mais le document xml fait quant à lui référence à
    http://www.my-sion.ch/dtd.dtd

    N'y a t'il pas problème ?

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 71
    Par défaut
    Citation Envoyé par alain.couthures Voir le message
    Oui mais le document xml fait quant à lui référence à
    http://www.my-sion.ch/dtd.dtd

    N'y a t'il pas problème ?
    c'est la même dtd en faite

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 71
    Par défaut
    Bon j'ai continué à charcher, mais le problème reste vraiment très étrange. J'ai remonté un autre serveur apache pour voir si je m'étais planté a qque part, mais j'ai le même problème.

    Je reprendrais mes recherches lundi. D'ici là je vous souhaite un bon week-end!
    Greg

Discussions similaires

  1. [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
  2. [PHP][XSLT] problème caractères accentués
    Par beho dans le forum XSL/XSLT/XPATH
    Réponses: 11
    Dernier message: 29/05/2006, 09h29
  3. [XSLT]Problème de séléction du noeud courrant
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/08/2005, 07h51
  4. [XSLT]Problèmes d'ordre de lecture et d'écriture
    Par leup dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/07/2005, 10h36
  5. [XSLT] Problème de chemin d'accès + XSLT
    Par Jorus dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/09/2004, 08h36

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