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 :

Parsing partiel d'un fichier xml en fonction de paramètres sur la ligne de commande


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 28
    Points : 39
    Points
    39
    Par défaut Parsing partiel d'un fichier xml en fonction de paramètres sur la ligne de commande
    Bonjour

    Je suis en train d'écrire un xsl dans le but de transformer un fichier
    xml décrivant des api en code C.

    exemple :

    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
    <fonctions>
      <methode name="methode1">
         <param name="param1_1" type="int" />
         <param name="param1_2" type="char" />
      </methode>
     
      <methode name="methode2">
         <param name="param2_1" type="int" />
         <param name="param2_2" type="char" />
      </methode>
     
      <methode name="methode3">
         <param name="param3_1" type="int" />
         <param name="param3_2" type="char" />
      </methode>
    </fonctions>
    Pour des raisons diverses, je ne désire pas parser le fichier en entier mais
    seulement certaines méthodes dont les noms sont connus à l'avance et
    pourront évoluer au fil du projet.

    J'ai pensé passer les noms des méthodes à parser sur la ligne de commande
    du parser. Hors, tout ce que j'ai vu permet de passer des paramètres
    clef=valeur et je ne vois pas comment je pourrai utiliser sauf à faire un
    truc pas propre du style (pour ne parser que les fonctions "methode2" et "methode3":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsltproc --param fonction1 methode2  --param fonction2 methode3  stylesheet file
    Derrière, je pourrai tester si le nom de la fonction dans le fichier xml est égal à la valeur
    du paramètre fonction1 ou fonction2.
    En plus de ne pas être certain que cela fonctionne, cela est bien cracra et
    peu évolutif si on imagine rajouter un nombre indéfini de fonctions.

    Idéalement, je préfererai un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsltproc -Dmethode2 -Dmethode3 stylesheet file
    et dans le xsl, qq chose pour dire "si le nom de la fonction est défini dans les
    paramètres"

    Une idée ?

    Merci
    Henri

  2. #2
    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
    Derrière, je pourrai tester si le nom de la fonction dans le fichier xml est égal à la valeur
    du paramètre fonction1 ou fonction2.
    En plus de ne pas être certain que cela fonctionne, cela est bien cracra et
    peu évolutif si on imagine rajouter un nombre indéfini de fonctions.
    Si vous n'arrivez pas à imaginer comment ça s'est fait, ceci pourrait vous aider à visualiser le méchanisme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes" encoding="utf-8" />
    <xsl:param name="fonction1" />
    <xsl:param name="fonction2" />
    <xsl:template match="/">
        <output>
            <xsl:apply-templates select="fonctions/methode[@name=$fonction1 or @name=$fonction2]" mode="special" />
        </output>
    </xsl:template>
    <xsl:template match="methode" mode="special">
        <xsl:copy-of select="." />
    </xsl:template>
    </xsl:stylesheet>
    Et vous passez les parametrès comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -stringparam fonction1 methode2 -stringparam fonction2 methode3
    Bien entendu, il se limite à chercher au plus deux fonctions, ou moins.

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/01/2019, 21h23
  2. [XSLT 1.0] Recopier un fichier XML en ajoutant un attribut sur une balise
    Par Michalak dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 07/08/2014, 07h07
  3. Afficher un fichier XML avec fonction JavaScript
    Par nicolas00123 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2013, 13h27

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