|
Afficher une animation SWF dans un document XML grâce au XSL. Télécharger un exemple xsl_flash.zip (5.59 KB) Objectif Depuis sa version 5.5, Internet Explorer pour Windows est capable de formater un document XML à partir d'une feuille de styles XSL. L'objectif de ce tutorial est de proposer une alternative xml / xsl pour l'affichage du code html suivant. <object> classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/ cabs/flash/swflash.cab#version=5,0,0,0" width="200" height="200"> <param name=movie value="fichier.swf"> </object> Le fichier XML Le fichier XML est constitué de 2 parties : l'entête et le corps. L'entête du fichier XML commence par la déclaration du fichier. Le second élément d'entête est la déclaration de la feuille de style XSL à associer au fichier XML. Sans fichier XSL, pas d'affichage du document XML ! Le fichier XSL est étudié dans la partie suivante. <?xml version="1.0"?> <?xml-stylesheet href="mon_fichier.xsl" type="text/xsl"?> Ce qui suit constitue le corps du document XML. La balise racine est la balise object, c'est le conteneur des balises suivantes : - codebase : url de téléchargement de l'ActiveX.
- classid : numéro identifiant de l'objet pour windows.
- width et height : les valeurs de largeur et de hauteur.
- param : conteneur des balises name et value.
<param> est elle-même un conteneur pour les balises name et value. On verra dans le fichier XSL associé que l'on peut placer autant de balises param que nécessaire, ceci grace à une boucle XSL. <object> <codebase>url de téléchargement de l'activeX</codebase> <classid>clsid</classid> <width>largeur</width> <height>hauteur</height> <param> <name>nom</name> <value>valeur</value> </param> </object> Le fichier XSL Le fichier XSL est composé de 3 parties : déclarations, styles à appliquer au document (la page web) et styles particuliers à appliquer aux balises du document XML. La déclaration du document XSL : Dans le cadre d'un document XML, on ouvre une feuille de style XSL. Les deux dernières lignes définissent la façon dont sont interprétés les instances et les noeuds du document XML. <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template><xsl:apply-templates/></xsl:template> <xsl:template match="textnode()"><xsl:value-of/></xsl:template> Les styles à appliquer au document : Ce qui suit indique quelles sont les transformations HTML que le navigateur doit appliquer à l'ensemble du document, le document étant l'instance " / " . L'instruction <xsl:apply-templates /> précise l'endroit où doivent commencer les styles particuliers à appliquer aux instances définies dans le document XML. <xsl:template match="/"> <html> <head> <title>Titre document</title> </head> <body bgcolor="orange"> <table width="100%" height="100%"> <tr> <td align="center">
<xsl:apply-templates /> </td> </tr> </table> </body> </html> </xsl:template> Les styles particuliers : Ce qui suit indique quelles sont les transformations HTML que le navigateur doit appliquer aux instances XML, la balise racine de notre exemple xml étant la balise <object>. <xsl:template match="object"> <object>
<xsl:attribute name="classid"> <xsl:value-of select="classid"/> </xsl:attribute> <xsl:attribute name="codebase"> <xsl:value-of select="codebase"/> </xsl:attribute> <xsl:attribute name="width"> <xsl:value-of select="width"/> </xsl:attribute> <xsl:attribute name="height"> <xsl:value-of select="height"/> </xsl:attribute>
<xsl:for-each select="param">
<param> <xsl:attribute name="name"> <xsl:value-of select="name"/> </xsl:attribute> <xsl:attribute name="value"> <xsl:value-of select="value"/> </xsl:attribute> </param> </xsl:for-each> Fin du document XSL. On ferme la balise racine du document XML, puis les styles XSL particuliers, enfin la feuille de style XSL. </object> </xsl:template> </xsl:stylesheet> Rediriger le navigateur vers la page XML / XSL Vous pouvez employer l'un ou l'autre de ces scripts pour rediriger le navigateur vers votre page XML. en Javascript : <script language="javascript">
function redirect_if_xsl (browser){ if (browser.indexOf("MSIE 6") > 0 || browser.indexOf("MSIE 5.5") > 0 && browser.indexOf("Win") > 0){ location = "mapage.xml" } }</script> en PHP : <?
function redirect_if_xsl ($browser){ if (stristr($browser, "MSIE 5.5") || stristr($browser, "MSIE 6") && stristr($browser, "Win")){ header("location: mapage.xml"); } }?>
Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir

|