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

XSL/XSLT/XPATH XML Discussion :

Est-il possible d'utiliser des fichiers xsl en cascade ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Est-il possible d'utiliser des fichiers xsl en cascade ?
    Je m'explique.

    J'ai un fichier XML dont je veux modifier la structure grace à un fichier XSL.

    fichier xml d'entrée:

    <resultats>
    _<treeModel result="ok"/>
    _<svmModel result="0.3"/>
    _<regressionModel>
    __<ok value="0.4"/>
    __<bad value="0.6"/>
    _</regressionModel>
    </resultats>

    flux de sortie:
    <resultats>
    <ok/>
    <bad/>
    <bad/>
    </resultats>

    Jusque là, tout vas bien.

    Mais, ce que je voudrais c'est appliquer un nouveau traitement à ce flux de sortie. Par exemple pour avoir "mauvais à 66%" affiché en plein milieu de la page.

    Les xsl:import et xsl:apply-import ne semblent pas convenir, puisqu'ils ne permettent que d'alléger une page xsl en mettant une partie du code dans un autre fichier.

    Et je n'ai pas vu quoi que ce soit me permettant d'attacher un fichier xsl à ce flux de sortie pour un traitement en cascade.

    Est-ce que quelqu'un connait une solution à mon problème?

    Si oui je suis preneur...

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    ce problème n'est pas pris en charge par la spécification XSL. Maintenant, c'est tout à fait possible, mais la solution sera différente selon ta plateforme, le langage et les outils employés.

    Liste de solutions (non exhaustive, il doit sans doute y avoir d'autres possibilités) :

    - Fichier Batch ou script Shell
    - Ant
    - TrAX (Cette API Java autorise la transformation en cascade d'un flux XML)

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Merci pour ta réponse

    Le language employé est le C# et l'application devra être déployée sur un windows 2003 serveur puisque on utilise des pages aspx.

    J'ai vu qu'il y avait effectivement des solutions pour générer des fichiers texte coté serveur à partir du flux de sortie au lieu de laisser le browser se charger de la transformation. Donc je suis en train d'étudier le problème par ce bout-ci. J'espère que je trouverais une solution exploitable.

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Novembre 2004
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Au cas où cela puisse interesser quelqu'un, je vien de trouver une solution simple à mon problème.

    En C# (language que j'utilise pour coder mon appli), il faut utiliser la classe System.Xml.Xsl.XslCompiledTransform.

    Cette classe propose 2 méthodes: load et transform.

    un exemple de solution pour transformer un fichier source XML avec 3 fichiers XSL est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    System.Xml.Xsl.XslCompiledTransform style1 = new System.Xml.Xsl.XslCompiledTransform(),
    style2 =  new System.Xml.Xsl.XslCompiledTransform(),
    style3 =  new System.Xml.Xsl.XslCompiledTransform();
     
    style1.load(@"d:\pathTo\style1.xsl");
    style2.load(@"d:\pathTo\style2.xsl");
    style3.load(@"d:\pathTo\style3.xsl");
     
    style1.transform(@"d:\pathTo\src.xml, @"d:\temp1");
    style2.transform(@"d:\temp1",@"d:\temp2");
    style3.transform(@"d:\temp2",@"d:\maPage.html");
    Ces lignes placées dans le code C# associé à une page ASPx par exemple résoud le problème des feuilles xsl en cascade.

Discussions similaires

  1. [AC-2010] Est il possible d'utiliser 2 fichiers de sécurités ?
    Par developpeur71 dans le forum Sécurité
    Réponses: 1
    Dernier message: 16/02/2015, 18h14
  2. Réponses: 2
    Dernier message: 02/01/2012, 22h23
  3. Réponses: 1
    Dernier message: 02/12/2010, 23h26
  4. [MCRYPT] Est-il possible de crypter des fichiers avec les bibliothèques de hash ?
    Par a028762 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/12/2006, 09h18
  5. [SimpleXML] Est-il possible d'utiliser des expressions XPATH 2.0 avec simplexml ?
    Par ANISSS dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 09/11/2006, 09h14

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