Bonjour,
J'ai des fichiers xml, ex :
Code :
- <?xml version='1.0' encoding='UTF-8'?>
- <!DOCTYPE scenario SYSTEM "log.dtd">
- <?xml-stylesheet type="text/xsl" href="log.xsl"?>
- <scenario name='MAIN_CLONAGE_F06'>
- <connexion login_webintake='LFZ' login_gp='W2J' environnement='02_25_34'/>
- <file type='log' value='tst.log'/>
- <file type='xml' value='tst.xml'/>
- <set variable='m_DATE' value='23.02.04'/>
- <scenario dateExe='2006-10-31_12-06-29' name='INIT_ENV'>
- <option nameGP='SAIENV' title='' id='1' name='SAIENV'>
- <step>
- <actions>
- <field_input type='saisie' option='SAIENV' value='OPCLUX' name='CODE_ENVIRONNEMENT'/>
- <field_input name='DATE_TRAVAIL_FRM' type='saisie' option='SAIENV' value='23.02.04' memory='m_DATE'/>
- <field_input type='passe' option='SAIENV' value='23/02/04' name='DATE_ANOMALIE_FRM'/>
- <field_input type='saisie' option='SAIENV' value='O' name='OK'/>
- </actions>
- <observations/>
- </step>
- </option>
- </scenario>
- </scenario>
|
associés à une feuille de style xsl, ex:
Code :
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:import href="rsc.xsl"/>
- <xsl:output method='html' encoding='iso-8859-1'/>
- <xsl:template match="/">
- <html>
- <head>
- <link rel="Stylesheet" type="text/css"><xsl:attribute name="href"><xsl:value-of select="$xslpath"/><xsl:value-of select="$xslcss"/></xsl:attribute></link>
- <script language="javascript">xslpath='<xsl:value-of select="translate($xslpath,'\','/')"/>';</script>
- <script language="javascript"><xsl:attribute name="src"><xsl:value-of select="$xslinit"/></xsl:attribute></script>
- <script language="javascript"><xsl:attribute name="src"><xsl:value-of select="$xslpath"/><xsl:value-of select="$xsljs"/></xsl:attribute></script>
- </head>
- <body>
- <br/>
- <table class="host">
- <tr>
- <td class="logo">
- <table class="logo">
- <tr>
- <td class="llogo"><img><xsl:attribute name="src"><xsl:value-of select="$xslpath"/><xsl:value-of select="$xslsgf"/></xsl:attribute></img></td>
- <td class="clogo">xsl:value-of select="/scenario/@name"/></td>
- <td class="rlogo">Log Xml</td>
- </tr>
- </table>
- <table class="link">
- <tr>
- <td class="link"><a class ="menu_off" onclick="newtest()">Nouveau test</a></td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td class="host">
- <table class="sub">
- <tr>
- <td>Scénario : <a target="_blank"><xsl:attribute name="href"><xsl:value-of select="/scenario/@source"/></xsl:attribute><xsl:value-of select="/scenario/@name"/></a></td>
- <td>Exécuté le : <xsl:value-of select="/scenario/@dateExe"/></td>
- <td>Par : <xsl:value-of select="/scenario/connexion/@login_webintake"/>/<xsl:value-of select="/scenario/connexion/@login_gp"/></td>
- <td>Sur : <xsl:value-of select="/scenario/connexion/@environnement"/></td>
- </tr>
- </table>
- <br/>
- <table class="sub">
- <tr>
- <td class="e t10">Fichiers joints : </td>
- <td class="t10"><a target="_blank"><xsl:attribute name="href"><xsl:value-of select="/scenario/file[@type='log']/@value"/></xsl:attribute>Log Txt</a></td>
- <td/>
- <td class="t10">
- <form name="options">
- <select id="index" class="list" onchange="jumptoid()">
- <xsl:call-template name="listoption"/>
- </select>
- </form>
- </td>
- </tr>
- </table>
- </td>
- </tr>
- <tr>
- <td class="host">
- <table class="sub">
- <xsl:apply-templates select="*"/>
- </table>
- </td>
- </tr>
- </table>
- </body>
- </html>
- </xsl:template>
- ...
|
Je voudrais pouvoir avoir un lien dans la page après transformation xslt me permettant de recharger le document xml avec une autre stylesheet xsl qui resemble a la première mais dont les template sont différents.
J'ai fait la fonction suivante en javascript mais la transformation ne se fait pas correctement, IE6 m'ouvre une page html correspondant au contenu du <xsl:template match="/"> mais c'est comme si il ne trouvais rien en dessous, aucune requete XPath ne fonctionne ...
Code :
- function axparserxml(xmlfile,xslfile)
- {
- var result = window.open('','');
- result.document.open("text/html","replace" );
- var xml = new ActiveXObject("Microsoft.XMLDOM" );
- xml.async = false;
- xml.load(xmlfile);
- var xsl = new ActiveXObject("Microsoft.XMLDOM" );
- xsl.async = false;
- xsl.load(xslfile);
- result.document.write(xml.transformNode(xsl));
- result.document.close();
- }
|
Comment obtenir le résultat que je recherche ? Y a t'il une erreur dans mon script ?
Message édité par fifiz le 27-11-2006 à 12:55:30