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 :

Traitement de plusieurs fichiers en entrée


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut Traitement de plusieurs fichiers en entrée
    Bonjour, le problème tient dans le titre.

    J'ai un fichier batch, qui applique ma transformation pour chaque fichier contenu dans un dossier. Mais le temps de traitement est long, puisque le processeur saxon est chargé à chaque fois. J'ai 130 fichiers, à 8 secondes environ par fichier.

    Maintenant, j'ai fait un test, lorsque je traite une seule transformation, sur plusieurs fichiers, le temps est raccourci. Mais pour ce test, j'avais créé un fichier xml contenant le nom des fichiers dans des balises <file>, que j'appelais ensuite dans ma transformation XSLT.

    La question : peut-on lancer directement une transformation sur un ensemble de fichiers ? Si oui comment ?

    Sinon je garderai ma petite méthode...

    Merci à vous !

  2. #2
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut
    Je me répond à moi-même (puisque j'ai apparemment le don pour proposer des sujets qui n'engendre pas de réponse).

    1) Déjà, lorsque je parle de "chargement du processeur XSLT", ce n'est je pense pas correct. Puisque que je traite les fichiers 1 par 1, ou le paquet entier dans la transformation XSLT, le temps est relativement le même (quand même un peu plus rapide pour le paquet, 7secondes par fichier contre 8secondes initialement).
    C'était donc plus une impression qu'un véritable fait.

    2) Je n'ai pas trouvé de possibilité de traiter plusieurs fichiers XML en entrée directement. soit on appelle les fichiers dans le XML (mais pas terrible pour du travail à la chaîne), soit on génère un fichier XML contenant la liste des fichiers à traiter (leur chemin en plus, ça permet de pas dépendre d'un répertoire), et on applique une XSLT dessus. C'est cette solution que j'ai gardé :
    - Je génère le fichier XML source par un batch (en gros : une succession de echo). Chaque fichier est contenu dans un élément <file> ;
    - J'applique l'XSLT sur cet XML. J'ai ainsi les lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        <xsl:template match="file"> 
            <xsl:variable name="xml_1"><xsl:copy-of select="document(.)"/></xsl:variable>
            <xsl:apply-templates select="$xml_1//truc"/>
        </xsl:template>
    On retrouve donc après un template classique sur l'élément <truc>.
    Apparemment, c'est la meilleure solution. En espérant que ça aide d'autres personnes.

    J'ai une question, pour les 2-3 membres qui osent me lire (merci à eux), commencer par un batch m'embête un peu, j'aimerais aussi avoir cette partie en XSLT. Est-ce qu'on pourrait envisager la création de cette liste en XSLT ? Vous avez déjà traité ce genre de cas ?

    On aurait par exemple un dossier Input, contenant les fichiers XML... compliquons la tâche, avec aussi des fichiers d'autres formats que l'on ne veut pas traiter...

    Alors ?! Possible or not ?!

    En tout cas, même si je n'ai (presque) jamais de réponse, je vois des lectures, c'est déjà ça ! Merci à vous !

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par VforVincent Voir le message
    Alors ?! Possible or not ?!
    Not.

    XPath ne permet pas de lister les fichiers d'un dossier, tout simplement parce que les emplacements des documents sont définis sous forme d'URI et que les URIs ne peuvent pas forcément désigner un dossier à contenu listable. Exemple, les URLs HTTP ou les URN.

    Un truc qui devrait être faisable en XSLT 2.0, et à condition de faire réaliser la transformation XSLT par un programme qu'on fait soi-même, c'est d'obtenir la liste des fichiers avec le programme, et de passer ça en paramètre de la feuille XSLT. Normalement en XSLT ça devrait passer pour une séquence de strings, sur laquelle on pourrait faire un for-each qui appellerait chaque fichier.
    Normalement, mais je ne sais pas si ça marche. Il me faudrait mon environnement XSLT 2.0 ready pour vérifier. (En XSLT 1.0, les séquences n'existent pas et cela est impossible.)

  4. #4
    Membre actif
    Avatar de VforVincent
    Homme Profil pro
    Doctorant (EPUB 3.0)
    Inscrit en
    Avril 2011
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Doctorant (EPUB 3.0)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 115
    Points : 265
    Points
    265
    Par défaut
    Ok ! C'est déjà une bonne piste, que je creuserais de-ci de-là en espérant aboutir à une solution viable.

    J'ai eu une réponse !!!

Discussions similaires

  1. Traitement de plusieurs fichiers Word en simultané par une macro Excel
    Par Dryanide dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2019, 13h53
  2. traitement de plusieurs fichiers d'un repertoire
    Par kikoo1918 dans le forum MATLAB
    Réponses: 9
    Dernier message: 12/04/2011, 12h46
  3. [XL-2003] Traitement de plusieurs fichiers
    Par korni184 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/08/2010, 12h57
  4. idee pour traitement sur plusieurs fichier excel
    Par jumpman dans le forum VB.NET
    Réponses: 0
    Dernier message: 28/10/2009, 19h38
  5. Traitement de plusieurs fichiers XML
    Par Katachana dans le forum Langage
    Réponses: 1
    Dernier message: 22/05/2007, 16h54

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