IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[XSLT JS] Passage de paramètre


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut [XSLT JS] Passage de paramètre
    Bonjour,

    Mon problème est que je n'arrive pas à passer de paramètres dans mon fichier XSL car j'obtient une erreur quand j'essaye d'utiliser le script se trouvant dans le FAQ.

    L'erreur est : Un composant ActiveX ne peut pas créer un objet

    Apparement cela viendrait de :
    var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");

    Si quelqu'un pourrait m'aider s'il vous plait

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bon en fait j'ai résolu l'erreur et réussi à mettre au point un script marchant sous IE et Firefox, avec passage d'un paramètre dans le XSLT

    Merci de votre aide

    Pour ceux que ça intéresse je mets ici le code :

    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
    88
    89
    90
    91
    92
    93
    94
    95
     
     function initIE()
     {	
    	try{
    	// Donnees
    	src = new ActiveXObject('MSXML2.DOMDocument.4.0');
    	src.async = false;
    	src.load('data2.xml');
    	}catch(e){}
     }
     
     function transformIE(fxsl, id, nameparam, param)
     {
    	try{
    	cache = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    	cache.stylesheet = fxsl;
     
    	var proc = cache.createProcessor();
    	proc.input = src;
    	if(nameparam!=""){proc.addParameter(nameparam, param);}
    	proc.transform();
    	document.getElementById(id).innerHTML = proc.output;
    	}catch(e){}
     }
     
    function initN()
     {
     try{
      // Donnees
      myXMLHTTPRequest = new XMLHttpRequest();
      myXMLHTTPRequest.open("GET", "data2.xml", false);
      myXMLHTTPRequest.send(null);
     
      src = myXMLHTTPRequest.responseXML;
      }catch(e){}
     }
     
     function transformN(fxsl, id, nameparam, param)
     {
    	try{
    	var proc = new XSLTProcessor();
    	proc.importStylesheet(fxsl);
    	if(nameparam!=""){proc.setParameter(null, nameparam, param);}
    	var fragment = proc.transformToFragment(src, document);
     
    	document.getElementById(id).innerHTML = "";
     
    	var myDOM = fragment;
    	document.getElementById(id).appendChild(fragment);
    	}catch(e){}
     }
     
     function trans(fxsl, id, nameparam, param)
     {
     	if(browser="Netscape"){ transformN(fxsl, id, nameparam, param); }
    	if(browser="Microsoft Internet Explorer"){ transformIE(fxsl, id, nameparam, param); }
     }
     
     function loadXSL(url)
     {
      	if(browser="Netscape"){ 
    		try{
    		fxsl = new ActiveXObject('MSXML2.FreeThreadedDOMDocument.4.0');
    		fxsl.async = false;
    		fxsl.load(url);
    		}catch(e){}
    	}
    	if(browser="Microsoft Internet Explorer"){
    		try{
    		var myXMLHTTPRequest = new XMLHttpRequest();
    		myXMLHTTPRequest.open("GET", url, false);
    		myXMLHTTPRequest.send(null);
     
    		fxsl = myXMLHTTPRequest.responseXML;
    		}catch(e){}
    	}
    	return fxsl;
     }
     
    function init()
    {
        if(browser="Netscape"){ initN() };
        if(browser="Microsoft Internet Explorer"){ initIE(); }
    }
     
    function loadinfos(id, nomparam, param)
    {
    	trans(xinfos, id, nomparam, param);
    }
     
    var src;
    var xinfos = loadXSL("./infos.xsl");
     
    var browser=navigator.appName;
    init();
    Voilà en gros au chargement de la page je charge les fichiers nécessaires (XML, XSL) et j'initialise le processeur de transformation.

    Et ensuite je transforme avec le XSL voulu la page demandé par l'utilisateur que j'affiche dans l'id que je veux...

    J'espère que cela pourra aider certains

  3. #3
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    [Résolu] en bas à gauche?
    Les Cours et tutoriels JavaScript
    Penser à la recherche et au bouton

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    ouh la la j'ai revu mon code et je me suis aperçu de grosses erreurs si quelqu'un pouvait s'amuser à supprimer mon ancien post merci

    Bon en fait j'ai résolu l'erreur et réussi à mettre au point un script marchant sous IE et Firefox, avec passage d'un paramètre dans le XSLT

    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
    88
    89
    90
     
     function initIE()
     {	
    	// Donnees
    	src = new ActiveXObject('MSXML2.DOMDocument.4.0');
    	src.async = false;
    	src.load('data2.xml');
     }
     
     function transformIE(fxsl, id, nameparam1, param1, nameparam2, param2)
     {
      	// create XSLTemplate object and compile stylesheet into it
    	cache = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    	cache.stylesheet = fxsl;
     
    	// retrieve cached XSLProcessor and transform the source document
    	var proc = cache.createProcessor();
    	proc.input = src;
    	if(nameparam1!=""){proc.addParameter(nameparam1, param1);}
    	if(nameparam2!=""){proc.addParameter(nameparam2, param2);}
    	proc.transform();
    	document.getElementById(id).innerHTML = proc.output;
     }
     
    function initN()
     {
      // Donnees
      myXMLHTTPRequest = new XMLHttpRequest();
      myXMLHTTPRequest.open("GET", "data2.xml", false);
      myXMLHTTPRequest.send(null);
     
      src = myXMLHTTPRequest.responseXML;
     }
     
     function transformN(fxsl, id, nameparam1, param1, nameparam2, param2)
     {
    	var proc = new XSLTProcessor();
    	proc.importStylesheet(fxsl);
    	if(nameparam1!=""){proc.setParameter(null, nameparam1, param1);}
    	if(nameparam2!=""){proc.setParameter(null, nameparam2, param2);}
    	var fragment = proc.transformToFragment(src, document);
     
    	document.getElementById(id).innerHTML = "";
     
    	var myDOM = fragment;
    	document.getElementById(id).appendChild(fragment);
     }
     
     function trans(fxsl, id, nameparam1, param1, nameparam2, param2)
     {
     	if(browser=="Netscape"){ transformN(fxsl, id, nameparam1, param1, nameparam2, param2); }
    	if(browser=="Microsoft Internet Explorer"){ transformIE(fxsl, id, nameparam1, param1, nameparam2, param2); }
     }
     
     function loadXSL(url)
     {
    	var fxsl;
      	if(browser=="Microsoft Internet Explorer"){ 
    		fxsl = new ActiveXObject('MSXML2.FreeThreadedDOMDocument.4.0');
    		fxsl.async = false;
    		fxsl.load(url);
    	};
    	if(browser=="Netscape"){
    		var myXMLHTTPRequest = new XMLHttpRequest();
    		myXMLHTTPRequest.open("GET", url, false);
    		myXMLHTTPRequest.send(null);
     
    		fxsl = myXMLHTTPRequest.responseXML;
    	};
    	return fxsl;
     }
     
    function init()
    {
        if(browser=="Netscape"){ initN() }
        if(browser=="Microsoft Internet Explorer"){ initIE(); }
    }
     
     
    function loadinfos()
    {
    	trans(xinfos, id, "", "", "", "");
    }
     
     
    var browser=navigator.appName;
    var src;
    var xinfos = loadXSL("./infos.xsl");
     
    init();
    Voilà en gros au chargement de la page je charge les fichiers nécessaires (XML, XSL) et j'initialise le processeur de transformation.

    Et ensuite je transforme avec le XSL voulu la page demandé par l'utilisateur que j'affiche dans l'id que je veux...

    J'espère que cela pourra aider certains

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passage de paramètre à un XSLT
    Par Willthelegend dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/07/2008, 14h37
  2. [XSLT] Passage de paramètre de xml
    Par barrique dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 24/04/2008, 15h49
  3. [XSLT] Passage de paramètres
    Par eki27 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/11/2007, 08h25
  4. [XSLT][Saxon]passage de paramètres à une template
    Par RB Greg dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 12/05/2005, 16h29
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo