Coucou,
Je n'arrive pas à récuperer dans une feuille XSLT des paramètres déclarées dans un bloc Javascript :
Le code Javascript ci-dessous consiste à :
-charger les document xml et la feuille de style
-créer un processeur Xslt en lui fournissant la feuille de style
-passer les paramètres éventuels de la feuille de style
-écrire le résultat dans un élément de la page.
Dans ma feuille XSLT ( ws-test.xml ), j'essaie de récuperer le paramètre "pathLevel" dans un template match sans succès (j'ai mis ci-dessous pas le code de la feuille de style en entier juste le nécessaire et ai mis en gras là où ça coince):
Par contre : <xsl:if test="$level='frameworks'"> marche (paramètre $level) à croire que les paramètres ne marchent que si on les utilisent dans une comparaison ..??
Voici le fichier xml correspondant (ws.xml) :
Pouvez-vous me dire pourquoi je n'arrive pas à récuperer le paramètre dans le template match ? sinon quelle correction faut il-apporter ?
MErci par avance de votre réponse ..
Modifié par vinzmeister (29 May 2006 - 14:33)
Je n'arrive pas à récuperer dans une feuille XSLT des paramètres déclarées dans un bloc Javascript :
Le code Javascript ci-dessous consiste à :
-charger les document xml et la feuille de style
-créer un processeur Xslt en lui fournissant la feuille de style
-passer les paramètres éventuels de la feuille de style
-écrire le résultat dans un élément de la page.
<html>
<TITLE>Coverage Informations</TITLE>
<head>
<script type="text/javascript">
var processor;
var xmlDoc;
var xslt;
function print(level, pathLevel, parentName){
[b]processor.setParameter(null,"level", level);
processor.setParameter(null,"pathLevel", pathLevel);
processor.setParameter(null,"parentName", parentName);[/b]
var resultat = processor.transformToFragment(xmlDoc, document);
document.body.innerHTML = ""
document.body.appendChild(resultat);
}
function init_xml(){
xslt = document.implementation.createDocument("", "", null);
xslt.async=false;
xslt.load("ws-xslt.xml");
processor =new XSLTProcessor();
processor.importStylesheet(xslt);
xmlDoc= document.implementation.createDocument("", "", null);
xmlDoc.async=false;
xmlDoc.load("ws.xml");
[b]print('frameworks','frameworks/framework','');[/b]
}
</script>
</head>
<body>
<script type="text/javascript">
init_xml();
</script>
</body>
</html>
Dans ma feuille XSLT ( ws-test.xml ), j'essaie de récuperer le paramètre "pathLevel" dans un template match sans succès (j'ai mis ci-dessous pas le code de la feuille de style en entier juste le nécessaire et ai mis en gras là où ça coince):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE toto[
<!ENTITY nbsp " " >
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"/>
<xsl:param name="level"/>
<xsl:param name="pathLevel"/>
<xsl:param name="parentName"/>
<xsl:template match=[b]"$pathLevel"[/b]>
<BODY>
<xsl:if test="$level='frameworks'"><xsl:call-template name="fw_list"/></xsl:if>
<xsl:if test="$level='framework'"><xsl:call-template name="listOfModule_from_fw"/></xsl:if>
</BODY>
</xsl:template>
Par contre : <xsl:if test="$level='frameworks'"> marche (paramètre $level) à croire que les paramètres ne marchent que si on les utilisent dans une comparaison ..??
Voici le fichier xml correspondant (ws.xml) :
<?xml version="1.0" encoding="utf-8" ?>
<frameworks nbL='152'>
<framework name='fw1' nbL='51'>
<module name='m2' nbL='21'>
</module>
</framework>
<framework name='fw2' nbL='55'>
<module name='m3' nbL='21'>
</module>
</framework>
<framework name='fw3' nbL='52'>
<module name='m4' nbL='21'>
</module>
</framework>
<framework name='fw4' nbL='56'>
<module name='m5' nbL='21'>
</module>
</framework>
</frameworks>
Pouvez-vous me dire pourquoi je n'arrive pas à récuperer le paramètre dans le template match ? sinon quelle correction faut il-apporter ?
MErci par avance de votre réponse ..
Modifié par vinzmeister (29 May 2006 - 14:33)