[xml] Le parser integre de IE ne gere pas les accents ?

Le parser integre de IE ne gere pas les accents ? [xml] - Programmation

Marsh Posté le 03-07-2001 à 21:10:00    

Voila, juste une question. Je dois afficher des infos provenant de fichiers xml dans des browsers web.
La majorites des postes "clients" etant sous win, j'ai decide (dans un premier temps) d'utiliser la parser xml integre a ie5 avec la feuille de style xsl qui va bien. Ceci evitant toutes tranformations des donnees sur le serveur, le client s'occupant de tout.  
Jusque la c'est bien, c'est pas le xsl standard (etonnant, non ?), mais ça marche. Seulement voila, des que l'on utilise un caratere accentue dans la feuille de style ou dans le fichier xml, ça foire dans les grandes largeurs ! IE apparemment convertie les codes des caracteres avant de parser le fichier...
 
Y'a une solution à ce truc ?
Merci :-)

Reply

Marsh Posté le 03-07-2001 à 21:10:00   

Reply

Marsh Posté le 03-07-2001 à 21:17:20    

ecrire sans accents :D
désolé  :p
 
plus sérieusement, me semble k'il faut encoder les accents, les < > ' " et autres
genre < = <


---------------

Reply

Marsh Posté le 03-07-2001 à 21:22:20    

si, il affiche de l'unicode, donc des pov' accents .... :)
 
si l'encoding n'est pas spécifié dans le xml, ie va interrompre le parsing, donc <?xml version="1.0" encoding="ISO-8859-1"?> pour utiliser é, è, ... etc.
 
sinon : j'ai fait tout mes tests avec ie 5.5. ça marchait jusqu'à un certain point. installer la dernière version du parser (msxml 3) a réglé les problèmes. (la spec xml n'était pas finalisée lorsqu'ie est sorti).

Reply

Marsh Posté le 03-07-2001 à 22:04:44    

Ok... J'encode deja en unicode, pas le choix de toute façon apparemment Java (qui genere le xml) gere bizarrement les codes autres que les codes Anglais...  
Mais cela ne marche pas... Enfin je vais aller jeter un coup d'oeil du cote de msxml, peut etre qu'en faisant la mise a jours cela marchera mieux.

Reply

Marsh Posté le 03-07-2001 à 22:20:14    

Ah ! y'a du mieux ! Enfin... du changement :-)
J'ai installe l'update de msxml et maintenant ça foire toujours autant mais la il me dit ça :
 
The XML page cannot be displayed  
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.  
 
 
--------------------------------------------------------------------------------
 
Reference to undefined entity 'eacute'. Line 25, Position 70  
 
<TD ALIGN="right" width="33%"><FONT SIZE="2" FACE="Arial"><I>ées</I></FONT></TD>

Reply

Marsh Posté le 03-07-2001 à 22:42:38    

xml ne définit que qq entités : les balises, quotes et le &.
 
donc demandes à ton machin java de pondre des vrais accents (é au lieu de é) ou des codes ascii (é au lieu de é).

Reply

Marsh Posté le 03-07-2001 à 22:52:38    

Ouais, je viens d'essayer, c'est ça... Merci pour ta reponse :-)
C'est vraiment n'importe quoi, je pensais que le code &xxx; etaient valables dans tous les langages ml... Ben la c'est le contraire, enfin...
 
Merci !

Reply

Marsh Posté le 03-07-2001 à 23:00:37    

j'aime bien le fait que le xml soit 'toupitit' :).  
 
au fait, rien ne t'empêche de redéfinir les entités html dans ton xml avec une dtd :
 
<!DOCTYPE document [
  <!ENTITY eacute "é">
]>
 
et tu pourras taper é qui ressortira en 'é'.

Reply

Marsh Posté le 03-07-2001 à 23:28:40    

oui, c'est un des problemes de bases avec IE5 ou IE6, le parser ne gere pas ca correctement. Il y a des techniques pour passer outre, neanmoins, du style tu definis une entite comme suit
<!ENTITY eacute "&eacute;" >
ou  
<!ENTITY eacute "<xsl:text disable-output-escaping='yes'>&eacute;</xsl:text>" >
(si ton output n'est pas du html, tu peux remplacer ca par  
<!ENTITY eacute "&#xxxx;" > ou &#xxxxx; est le code unicode.
(Mais si qq'un sait comment obtenir en sortie des entites caracteres non modifiees par le parsing, je suis preneur, car les techniques indiquees dans le bouquin XSLT Quicklyde BoB DuCharme, qui semblent fonctionner dans une transformation fichier->fichier, ne marchent pas en lecture directe sous IE).
A+,

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed