Bonsoir � tous et toutes,
Voil� mon petit probl�me, j'ai un fichier xml contenant des produits avec diff�rentes attributs, l'id�e est d'avoir une page html avec un field dans lequel on entre une valeur qui pourra permettre de filtrer les produits, donc suivant une occurrence d'attribut d�finie par le field. Le probl�me c'est que j'ai l'impression que la variable n'est pas pass�e depuis le .html vers le .xsl dans lequel j'utilise le contenu de la variable, du moins c'est mon id�e. Si vous voulez regarder par vous-m�me :
Fichier html avec javaScript :
Le fichier xsl :
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 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Liste des produits par niveau de réapprovisionnement</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript" type="text/JavaScript"> function lister(niv) { // On charge la feuille XSL var feuilleXsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0"); feuilleXsl.async = false; feuilleXsl.load("styleProd.xsl"); // On charge le document XML var docXml = new ActiveXObject("Msxml2.DOMDocument.4.0"); docXml.async = false; docXml.load("Produits.xml"); // On transforme var xslt = new ActiveXObject("Msxml2.XSLTemplate.4.0"); xslt.stylesheet = feuilleXsl; var procXsl; // On crée un processeur xslt procXsl = xslt.createProcessor(); //On lui soumet le doc xml procXsl.input = docXml; //traitement procXsl.addParameter('niveau', niv); procXsl.transform(); //On récupère la sortie du traitement var resultat = procXsl.output; var entete = 'Saisir un autre niveau<br /><form name="formulaire"><input name="niv" type="text"><br /><input type="button" name="recherche" value="Recherche" onClick="lister(this.formulaire.niv.value)"></form>'; //Affichage du résultat document.body.innerHTML = entete + resultat; } </script> </head> <body> <font face="Comic sans ms" size="3">Entrez un niveau de réapprovisionnement</font><br /> <form name="formulaire"> <input name="niv" type="text"><br /> <input type="button" name="recherche" value="Recherche" onClick="lister(this.formulaire.niv.value)"> </form> </body> </html>
J'ai d�j� essayer pas mal de choses avec �a mais rien n'y fait. Lorsque j'entre une valeur pour la variable utilis�e dans le xsl, lorsque j'ouvre le .xml nickel j'ai la liste filtr�e...
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87 <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <!--<xsl:param name='niveau'>25</xsl:param>--> <xsl:template match="/"> <html> <head> <style type="text/css"> table { border-collapse: collapse; border: solid black 1px; margin-left:150px;} td { padding: 3px; border: solid black 1px;} th { padding: 3px; border: solid black 2px;} </style> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> </head> <body> <p align="center"> <font size="4" face="Imprint MT Shadow">Liste filtrée</font> </p> <table width="800px"> <TR> <TH> Position </TH> <TH> Référence </TH> <TH> Libellé </TH> <TH> N° fournisseur </TH> <TH> Catégorie </TH> <TH> Quantité/unité </TH> <TH> Prix unitaire </TH> <TH> Stock </TH> <TH> Unités commandées </TH> <TH> Niveau réapprovisionnement </TH> <TH> Indisponible </TH> </TR> <xsl:element name="p"><xsl:value-of select= '$niveau' /></xsl:element> <xsl:for-each select="dataroot/Produits[Niveau_de_réapprovisionnement=$niveau]"> <xsl:sort select="Nom_du_produit" data-type="text" order="ascending"/> <tr> <td width="25%" size="12px"> *<xsl:number value="position()" format="1. "/> </td> <td width="25%" size="12px"> *<xsl:value-of select="Réf_produit"/> </td> <td width="25%" size="12px"> *<xsl:value-of select="Nom_du_produit"/> </td> <td width="25%" size="12px" align="center"> *<xsl:value-of select="N_fournisseur"/> </td> <td width="25%" size="12px" align="center"> *<xsl:value-of select="Code_catégorie"/> </td> <td width="25%" size="12px"> *<xsl:value-of select="Quantité_par_unité"/> </td> <td width="25%" size="12px"> *<xsl:value-of select="Prix_unitaire"/> </td> <td width="25%" size="12px"> *<xsl:value-of select="Unités_en_stock"/> </td> <td width="25%" size="12px" align="center"> *<xsl:value-of select="Unités_commandées"/> </td> <td width="25%" size="12px" align="center"> *<xsl:value-of select="Niveau_de_réapprovisionnement"/> </td> <td width="25%" size="12px" align="center"> *<xsl:value-of select="Indisponible"/> </td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
Merci d'avance pour votre aide,
Arkh.
Partager