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

XML/XSL et SOAP Discussion :

MSXML2, enchainer deux feuilles de Style


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut MSXML2, enchainer deux feuilles de Style
    Bonjour, c'est encore moi

    C'est peut etre une question VBscript mais ca reste du XSLT un peu quand même.

    Voila, j'ai un XML (nommé toto1.xml). Je veux le faire passer par une premiere feuille de style qui genere un autre XML, (toto2.xml).
    Puis lancer une seconde feuille de style sur toto2.xml sans générer de fichier toto2.xml.



    EN GROS
    J'aimerais avec MSXML faire traiter un flux de données généré par MSXML par une feuille de style. Ma question est juste : est-ce possible ? et comment faire ??

    Merci Beaucoup.


    Je ne trouve pas de doc.

  2. #2
    Membre confirmé
    Avatar de grishka
    Inscrit en
    Janvier 2003
    Messages
    285
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 285
    Points : 499
    Points
    499
    Par défaut
    oui c'est certainement possible et je ferais comme ca à priori

    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
     
    //instanciation d'un objet template pour la première feuille
    var xslt1 = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    var xslDoc1 = new  ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
                xslDoc1.async = false;
                xslDoc1.load("feuille1.xslt");
                xslt1.stylesheet = xslDoc1;
    //instanciation d'un objet template pour la deuxième feuille
    var xslt2 = new ActiveXObject("Msxml2.XSLTemplate.4.0");
    var xslDoc2 = new  ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
                xslDoc2.async = false;
                xslDoc2.load("feuille2.xslt");
                xslt2.stylesheet = xslDoc2;
     
    //instanciation d'un objet DOM pour ton document XML
                var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
                xmlDoc.async = false;
                xmlDoc.load("test.xml"); 
     
    //transfo avec la première feuille
    var xslProc1 = xslt1.createProcessor();
    xslProc1.input = xmlDoc;
    xslProc1.transform();
     
    //transfo avec la seconde feuille
    var xslProc2 = xslt2.createProcessor();
    xslProc2.input = xslProc1.output; 
    xslProc2.transform();
     
    ensuite tu fais ce que tu veux de xslProc2.output;

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Helas
    Et oui, l'informatique c'est toujours bizarre et tordu.

    à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xslProc2.input = xslProc1.output;
    J'ai l'erreur :
    msxml4.dll error '80070057'

    The parameter is incorrect.
    Comme je pouvais m'attendre. Le Input d'une feuille de style avec Msxml2 est (j'ai l'impression) forcément un fichier, pas un flux de données.

    Merci beaucoup en tout cas.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2003
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Trouvé
    J'ai trouvé en potassant la doc de msxml. Et oui, la doc, c'est bien aussi.

    Il sufissait de faire :

    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
     
    '//instanciation d'un objet template pour la première feuille 
    set xslt1 = Server.CreateObject("Msxml2.XSLTemplate.4.0")
    set xslDoc1 = Server.CreateObject("Msxml2.FreeThreadedDOMDocument.4.0") 
     
                xslDoc1.async = false 
                xslDoc1.load("feuille1.xsl") 
                xslt1.stylesheet = xslDoc1
     
    '//instanciation d'un objet template pour la deuxième feuille 
    set xslt2 = Server.CreateObject("Msxml2.XSLTemplate.4.0") 
    set xslDoc2 = Server.CreateObject("Msxml2.FreeThreadedDOMDocument.4.0") 
                xslDoc2.async = false 
                xslDoc2.load("feuille2.xsl") 
                xslt2.stylesheet = xslDoc2 
     
    '//instanciation d'un objet DOM pour ton document XML 
                set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.4.0") 
                xmlDoc.async = false 
                xmlDoc.load("feuille.xml") 
     
    '//transfo avec la première feuille 
    set xslProc1 = xslt1.createProcessor
    xslProc1.input = xmlDoc 
    xslProc1.Transform
     
    set xmlDoc3 = Server.CreateObject("Msxml2.DOMDocument.4.0") 
                xmlDoc3.async = false 
                xmlDoc3.loadXML(xslProc1.output)
     
     
    '//transfo avec la seconde feuille 
    set xslProc2 = xslt2.createProcessor
    xslProc2.input = xmlDoc3
    xslProc2.transform
    En tout cas, sans toi, j'aurais jamais trouvé.

    Le mot magique : loadXML
    Merci Beaucoup.

    Bruno

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

Discussions similaires

  1. Priorité de styles entre deux feuilles
    Par droubaud dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 15/03/2015, 10h31
  2. Réponses: 0
    Dernier message: 03/01/2014, 17h26
  3. Deux feuille de Style
    Par abelazi dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 01/02/2010, 00h08
  4. [CSS] deux feuilles de style quasi identiques.
    Par titoumimi dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 02/03/2006, 17h23
  5. Rattacher une feuille de style a un XML existant
    Par aour dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 08/10/2002, 22h07

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