Petites précision:
Voici les pages XML et XSL qui fonctionnent sous IE, mais pas sous Firefox:
Page XML:
Code :
- <?xml version="1.0" encoding="UTF-8"?>
- <?xml-stylesheet href="./meslivres.xsl" type="text/xsl"?>
- <mysongs>
- <song>
- <TITRE>Zondation</TITRE>
- <NOM>ASIMOV</NOM>
- <PRENOM>Isaac</PRENOM>
- <GENRE>Science-Fiction</GENRE>
- </song>
- <song>
- <TITRE>Aes Robots</TITRE>
- <NOM>ASIMOV</NOM>
- <PRENOM>Zoe</PRENOM>
- <GENRE>Colmic</GENRE>
- </song>
- <song>
- <TITRE>Aes Robots</TITRE>
- <NOM>ASIMOV</NOM>
- <PRENOM>Zoe</PRENOM>
- <GENRE>Colmic</GENRE>
- </song>
- <song>
- <TITRE>Aes Robots</TITRE>
- <NOM>ASIMOV</NOM>
- <PRENOM>Zoe</PRENOM>
- <GENRE>Colmic</GENRE>
- </song>
- </mysongs>
|
Page XSL:
Code :
- <?xml version="1.0" encoding="UTF-8"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:template match="/">
- <html>
- <head>
- <title>Enfoiré</title>
- <script language="JScript">
- <xsl:text disable-output-escaping='yes'>
- <![CDATA[
- // Déclaration des variables
- var XSLSource = new Object();
- var XMLSource = new Object();
- // Chargement des documents XML et XSL
- XMLSource = document.XMLDocument;
- XSLSource = document.XSLDocument;
- function tri(rubrique)
- {
- // Déclaration des variables
- var XSLSort = new Object();
- // Sélection de l'ordre xsl:sort
- XSLSort = XSLSource.documentElement.selectNodes("//xsl:sort" );
- // Affectation de la rubrique de tri
- if (XSLSort[0].attributes(0).text == rubrique.toString())
- {
- if ( XSLSort[0].attributes(1).text == "ascending" )
- {
- XSLSort[0].attributes(1).text = "descending";
- }
- else
- {
- XSLSort[0].attributes(1).text = "ascending";
- }
- }
- else
- {
- XSLSort[0].attributes(1).text = "ascending";
- }
- XSLSort[0].attributes(0).text = rubrique.toString();
- // affichage de l'ordre de tri
- XSLem = XSLSource.documentElement.selectNodes("//p/em" );
- XSLem[0].text = rubrique.toString();
- XSLem[1].text = XSLSort[0].attributes(1).text;
- // Réaffichage de la page
- document.body.innerHTML = XMLSource.transformNode(XSLSource);
- }
- ]]>
- </xsl:text>
- </script>
- </head>
- <body>
- <p>Tri sur <em>TITRE</em> par ordre <em>descending</em>.</p>
- <p>Cliquez sur un titre pour changer l'ordre de tri.</p>
- <table border="1">
- <tr>
- <th id="HeaderColumnTITRE" onclick="javascript:tri('TITRE');">Titre</th>
- <th id="HeaderColumnNOM" onclick="javascript:tri('NOM');">Nom</th>
- <th id="HeaderColumnPRENOM" onclick="javascript:tri('PRENOM');">Prenom</th>
- <th id="HeaderColumnGENRE" onclick="javascript:tri('GENRE');">Genre</th>
- </tr>
- <xsl:for-each select="mysongs/song">
- <xsl:sort select="TITRE" order="descending"/>
- <tr>
- <td><xsl:value-of select="TITRE"/></td>
- <td><xsl:value-of select="NOM"/></td>
- <td><xsl:value-of select="PRENOM"/></td>
- <td><xsl:value-of select="GENRE"/></td>
- </tr>
- </xsl:for-each>
- </table>
- </body>
- </html>
- </xsl:template>
- </xsl:stylesheet>
|
Merci beaucoup de votre aide, j'ai beau chercher sur le web, je n'ai rien trouvé jusqu'ici pour résoudre le problème.
Message édité par panix le 23-01-2006 à 23:09:05