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 :

[Résolut] [XSLT] compatibité IE et FireFox!


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut [Résolut] [XSLT] compatibité IE et FireFox!
    Bonjour

    Voila j'ai fait un fichier xsl pour afficher mes fichier xml sur mon site. Mais voila mon code marche soit sur IE soit dans une autre version sous FireFox mais pas sur les deux navigateurs.

    Code marchant sous IE et qui ne marche pas sur FireFox (message d'erreur: Erreur lors du chargement de la feuille de style : Échec de l'analyse d'une feuille de style XSLT. ) :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
    <xsl:template match="/">
    <html>
    	<head>
    		<title>BeauRéal </title>
    		<link href="../../Styles/style.css" rel="stylesheet" type="text/css"></link>
    	</head>
    	<body>
    		<div class="over4" align="center">
    		<table >
    			<tr></tr><tr></tr><tr></tr><tr></tr>
    			<tr >
    			<td width="3%"></td>
    			<td class="verdana12vertG" align="center"><xsl:value-of select="Document/Titre"/></td>
    			<td width="3%"></td>
    			</tr>
    			<tr></tr><tr></tr><tr></tr>		
    			<xsl:for-each select="Document/Text">
    			<tr>
    				<td width="5%"></td>
    				<td ><li class="verdana10vertG"><xsl:value-of select="Sstitre"/></li></td>
    				<td width="5%"></td>
    			</tr>				
    				<xsl:for-each select="Corpstxt">
    					<xsl:choose>
    					<xsl:when test=".[Ita!='']">
    						<tr >
    							<td width="5%"></td>
    							<td class="verdana10txti">    <xsl:value-of select="Ita"/></td>
    							<td width="5%"></td>
    						</tr>
    						<tr class="verdana10txt">
    							<td width="5%"></td>
    							<td>    <xsl:value-of select="Para"/></td>				
    							<td width="5%"></td>
    						</tr>
    					</xsl:when>
    					<xsl:otherwise>
    						<tr class="verdana10txt">
    							<td width="5%"></td>
    							<td>    <xsl:value-of select="Para"/></td>				
    							<td width="5%"></td>
    						</tr>
    					</xsl:otherwise>
    					</xsl:choose>
    				</xsl:for-each>
    			</xsl:for-each>
    			<tr></tr><tr></tr><tr></tr><tr></tr>
    		</table>
    		</div>
    	</body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    Code marchant sous FireFox et qui ne marche pas sur IE (message d'erreur: Jeton attendu 'eof' trouvé '['. .-->[<--Ita!=''] ) :
    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html" indent="yes" encoding="ISO-8859-1"/> 
    <xsl:template match="/">
    <html>
    	<head>
    		<title>BeauRéal </title>
    		<link href="../../Styles/style.css" rel="stylesheet" type="text/css"></link>
    	</head>
    	<body >
    		<div class="over4" align="center">
    		<table >
    			<tr></tr><tr></tr><tr></tr><tr></tr>
    			<tr >
    			<td width="3%"></td>
    			<td class="verdana12vertG" align="center"><xsl:value-of select="Document/Titre"/></td>
    			<td width="3%"></td>
    			</tr>
    			<tr></tr><tr></tr><tr></tr>		
    			<xsl:for-each select="Document/Text">
    			<tr>
    				<td width="5%"></td>
    				<td ><li class="verdana10vertG"><xsl:value-of select="Sstitre"/></li></td>
    				<td width="5%"></td>
    			</tr>				
    				<xsl:for-each select="Corpstxt">
    					<xsl:choose>
    					<xsl:when test=".[Ita!='']">
    						<tr >
    							<td width="5%"></td>
    							<td class="verdana10txti">    <xsl:value-of select="Ita"/></td>
    							<td width="5%"></td>
    						</tr>
    						<tr class="verdana10txt">
    							<td width="5%"></td>
    							<td>    <xsl:value-of select="Para"/></td>				
    							<td width="5%"></td>
    						</tr>
    					</xsl:when>
    					<xsl:otherwise>
    						<tr class="verdana10txt">
    							<td width="5%"></td>
    							<td>    <xsl:value-of select="Para"/></td>				
    							<td width="5%"></td>
    						</tr>
    					</xsl:otherwise>
    					</xsl:choose>
    				</xsl:for-each>
    			</xsl:for-each>
    			<tr></tr><tr></tr><tr></tr><tr></tr>
    		</table>
    		</div>
    	</body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    Donc voila si quelqu'un qui peut m'aider, merci d'avance

  2. #2
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Si tu essayes le deuxième XSL mais a la place du . tu mets node()?

    et essaye aussi avec cette output:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:output method="xml" encoding="iso-8859-1"  indent="yes"  doctype-public="-//W3C//DTD
    XHTML 1.0 Frameset//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" />
    La première il ne faut même pas y pensé! car le namespace que tu utilise étais celui de la phase de test de XSL et il n'est maintenant et ne doit plus être servi!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    J'ai essayé les parentése comme suit:
    Erreur firefox :
    Erreur lors du chargement de la feuille de style : Échec de l'analyse XPath : test de Name ou de Nodetype attendu :
    Erreur IE :
    Expression attendue. (-->[<--Ita!=''])

    Et comme suit:
    Erreur fifox :
    Erreur lors du chargement de la feuille de style : Échec de l'analyse XPath : test de Name ou de Nodetype attendu :
    Erreur IE:
    Expression attendue. (-->)<--[Ita!='']

    Pour le Output :
    Sous firefox : sa marche mais je n'ai plus la mise en forme (le text est brute)
    Sous IE : Erreur Jeton attendu 'eof' trouvé '['. .-->[<--Ita!='']

    Merci quand Meme 'Virgul'

  4. #4
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Désolé j'aurais du te mettre un exemple pour que tu comprennes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="node()[Ita!='']">
    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Bon, j'ai testé! Il n'y a plus d'erreur (sa marche avec les deux) mais le probléme c que du coup le test est toujours faut. On passe toujours par <xsl:otherwise>.

    Moi ce que je veux faire c'est que quand il y a pas de text dans la balise <Ita> on ne créai pas la cellule du tableau avec le text de <Ita>. Et quand il y a du text dans <Ita> on affiche la cellule avec <Ita>.

    A quoi sert node()?

    Encore merci pour l'aide

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    1) Ton premier XSLT utilise une tres vielle norme:

    http://www.developpez.net/forums/viewtopic.php?t=94990
    a bannir

    2) Tu veux tester quoi ici ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:when test=".[Ita!='']">
    Si tu veux tester qu'il existe un fils Ita non vide l'ecriture c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <xsl:when test="Ita[text()!='']">

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 33
    Points : 16
    Points
    16
    Par défaut
    Bon le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:when test="Ita[text()!='']">
    fonctionne parfaitement merci à tout les deux!!!

    Par contre où on trouve un index des fonctions xslt ou un cour y faisant réfférence.

    Encore merci

  8. #8
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

Discussions similaires

  1. [XSLT] problème affichage dans Firefox Recherche :
    Par Scipion80 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 30/09/2009, 20h07
  2. XSLT, CDATA, HTML et Firefox, la vraie solution ?
    Par ClemLamb dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 14/01/2009, 12h11
  3. [XSLT] Transformation valide avec Firefox / incomplète avec IE
    Par prgasp77 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 18/02/2008, 14h06
  4. [XSLT] Problème affichage sous Firefox et pour IE OK
    Par SkyDev dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/02/2007, 10h09
  5. [XSLT] Problème Javascript IE/FireFox
    Par Thylia dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 15/02/2007, 20h54

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