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

VBScript Discussion :

[Résolu] Executer une feuille XSLT via VBS


Sujet :

VBScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Points : 58
    Points
    58
    Par défaut [Résolu] Executer une feuille XSLT via VBS
    Bonjour,
    Un programme en VBS crée un fichier XML.
    Ce fichier contient plusieurs sections repérées par des balises normées.
    En fin d'exécution du programme, j'aimerai lancer une feuille XLST qui prendrait ce fichier nouvellement créé et l'éclaterait en n fichiers suivant des critères dans la feuille XSLT.
    (Pour moi, il est plus facile de gérer la génération des fichiers que de toucher au programme de génération du fichier [requêtes multiples, ...])

    Question :
    • Commen code-t-on pour "lancer" cette feuille xslt ?
    • Y-a-t-il des exemples ? (je n'ai rien trouvé - pour l'instant - sur le web).


    Grand merci d'avance pour votre aide.

    Cordialement.

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 840
    Points : 9 225
    Points
    9 225
    Par défaut
    Postez votre code et
    Je ne sais pas, si vous voulez l'ouvrir avec IE ou quelque chose d'autre

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    Désolé, je me suis mal exprimé.
    J'ai écris un programme batch en VBS.
    Ce programme extrait des données d'une base ORACLE et constitue un fichier XML.
    Ce fichier XML contient des balises "normées" (par nous) telles que : <IMMO>, <PAYE>, <RECETTES>, ...
    À la fin ce traitement (mais dans ce traitement batch), je voudrai exécuter une feuille XSLT qui va éclater ce fichier XML en différents fichiers :
    IMMO_aaaammjjhhss.XLM, PAYE_aaaammjjhhss.XML, ...
    Tout ce traitement s'exécute en batch. Il n'y a pas de IE ou autre navigateur dans la course.
    Dernière précision : Ces fichiers sont récupérés par un ERP qui les intègre via un programme batch.

    Comme exemple ci dessous, le code vérifie l'adéquation d'un fichier xml avec sa feuille XSD, je cherche un bout de code pour exécuter une feuille xLST.
    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
    '--- Nom du fichier à vérifier
    Dim NomFic
    Nomfic = "PREV SEPA GILLES.xml"
    Dim WshShell
    Set WshShell=CreateObject("WScript.Shell")
    Dim xmlDoc
    set xmlDoc=CreateObject("Msxml2.DOMDocument.6.0")
    xmlDoc.async=false
    xmlDoc.validateOnParse=true
    Dim xmlSchema
    set xmlSchema=CreateObject("Msxml2.DOMDocument.6.0")
    xmlSchema.async=false
    xmlSchema.validateOnParse=true
    xmlSchema.load "Pain.008.001.02.xsd"
    Dim xsdCache
    set xsdCache=CreateObject("Msxml2.XMLSchemaCache.6.0")
    xsdCache.add "urn:iso:std:iso:20022:tech:xsd:pain.008.001.02", xmlSchema
    Set xmlDoc.schemas = xsdCache
    xmlDoc.load NomFic
    Set myErr=xmlDoc.parseError
    If(myErr.errorCode<>0) Then
            WScript.Echo("Fichier : " & NomFic & VbLf & VbLf & "errorReason="+myErr.reason)
    else
            WScript.Echo("Fichier : " & NomFic & VbLf & VbLf & "ok")
    End If
    msgbox "Fini"
    Voilà, j'espère avoir répondu à ta question.

    Cordialement.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    Finalement, j'ai trouvé des éléments de réponse.

    Ce lien explique comment installer le parseur xsltproc :
    http://www.revue-texto.net/Corpus/Ma...giciels.html#2.

    Ce lien explique comment l'utiliser :
    http://www.becoz.org/these/docbook/html/ar01s03.html

    Ce sont des exemples facile à transposer dans n'importe quel langage.

    J'espère que cela pourra aider quelqu'un d'autre.

    Cordialement.

  5. #5
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je vois mal pourquoi une solution hétérogène soit désirable. Msxml2 est tout à fait capable de faire des transformations tout en restant sous contrôle d'un script vbs.

    La transformation se fait comme ça.

    Code vbscript : 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
    dim xsltfile 
    xsltfile="xyz.xsl"    'ou plusieurs pour différente résultats désirée; comme donnée 
    dim outfile    'ou plusieurs; pour persister le(s) résultats de transformation
    outfile="out.xml"
     
    dim stylesheet, result
    set stylesheet = createobject("Msxml2.DOMDocument.6.0")
    with stylesheet
        .async=false
        bret=.load xsltfile
    end with
    'Avec les contrôle d'erreurs du chargement comme d'habitude commencer avec bret...
    'ce bloc n'est pas montré mais supposant qu'il soit là
     
    'Etablir un objet pour recueillir la résultat de transformation
    set result = createobject("Msxml2.DOMDocument.6.0")
    with result
        .async=false
        .validateOnParse=false
    end with
     
    'xmlDoc est ce qui est établi aupravant
    xmlDoc.transformNodeToObject stylesheet, result
    result.save outfile
    Si on envisage de multiple éclartement, on fait un boucle avec des fichiers xsltfile et outfile chaque fois différents et appropriés.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 64
    Points : 58
    Points
    58
    Par défaut
    Merci Tsuji,

    C'est super.
    C'est exactement ce que je cherchais.

    T'es un As.

    Merci.
    Cordialement.

Discussions similaires

  1. rendre visible une feuille Excel via un mot de passe
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2022, 15h19
  2. Réponses: 7
    Dernier message: 14/03/2014, 13h39
  3. Validation d'une feuille XSLT
    Par aoyou dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/06/2008, 14h01
  4. Executer une feuille XSLT sur du xml
    Par naiadeKaren dans le forum Général Python
    Réponses: 2
    Dernier message: 24/08/2005, 14h53
  5. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

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