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 :

fichier extérieur xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut fichier extérieur xml
    Bonjour,

    Je suis bloqué actuellement sur une transformation de fichier xml

    j'ai besoin d’écrire un fichier dans un template qui me servirais de "variable globale"

    je veux creer un fichier en debut de transformation (comme si j'implementait une variable globale) et a chaque fois que je passe dans un template écrire une valeur dans ce fichier(le top serait un fichier xml)

    et enfin a la fin de ma transformation aller lire ce fichier afin de pouvoir arreter ou pas la transformation

    j'ai tourné autour de la librairie "redirect" mais je n'ais rien trouver de concluant

    bref dans l'attente d'une reponse

    Pour info,je bosse dans l'EDi(echange de donnée informatisée) sur des fichiers logisitique.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    C'est totalement à l'opposé de ce que XSLT cherche à faire.
    Le principal problème est que tu décris là un comportement itératif, alors que XSLT est un système déclaratif.

    Je ne dis pas que c'est impossible, car il y a des extensions propriétaires XSLT 2.0 qui font de l'itératif. Mais c'est en dehors des clous et il va falloir attendre quelqu'un qui connaît ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Bonjour,

    je veux creer un fichier en debut de transformation (comme si j'implementait une variable globale) et a chaque fois que je passe dans un template écrire une valeur dans ce fichier(le top serait un fichier xml)
    Ca ce n'est pas très difficile, il y a des extensions XSLT qui permettent de le faire.

    et enfin a la fin de ma transformation aller lire ce fichier afin de pouvoir arreter ou pas la transformation
    Là cela me parait plus difficile, je ne l'ai jamais fait. Et je serais curieux de voir la solution.

    il y a des extensions propriétaires XSLT 2.0
    Thelvin, tu pense à quelles extensions ?
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 554
    Points : 21 613
    Points
    21 613
    Par défaut
    Citation Envoyé par polymorphisme Voir le message
    Thelvin, tu pense à quelles extensions ?
    Il me semble que Saxon fait tout même le café, et qu'il est possible de lui programmer soi-même les extensions qu'on veut, notamment pour faire de la logique itérative.
    Autrement dit qu'on peut faire de la programmation impérative en XSLT avec Saxon.

    Mais je n'ai que peu regardé ces trucs qui me semblent s'éloigner du but premier d'une stylesheet, alors je peux me tromper.

    (Au fait, moi j'avais compris que à chaque fois qu'il entre dans un template pour faire son traitement normal, il veut en plus, à côté, écrire des infos dans un autre fichier. Ça c'est pas possible avec la syntaxe XSLT.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    "(Au fait, moi j'avais compris que à chaque fois qu'il entre dans un template pour faire son traitement normal, il veut en plus, à côté, écrire des infos dans un autre fichier. Ça c'est pas possible avec la syntaxe XSLT.)"


    oui c'est ça que je veux faire
    j'ai essayer avec la methode redirect mais j'ai un message d'erreur
    lorsque je passe ça dans visual studio ou xml spy il ne comprend pas le

    <redirect:write file="{fichier.XML}">


    pour réagir aux post d'avant pour arreter une transformation il faut utiliser

    <xsl:message terminate = "yes">

    pour lire dans un autre fichier j'utilise

    <xsl:value-of select="document(



    <xsl:template name='EAVI0001CTRL00010001_TEXTE'>
    <!-- *********************************************************************************************************************
    *
    * écrit le nom de zone dont la valeur n'est pas présente
    *
    *
    *
    ************************************************************************************************************************** -->
    <xsl:param name="Valeur1"/>
    <xsl:value-of select="local-name($Valeur1) "/>
    <xsl:value-of select="':'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/DetailsZone/DetailsLibelleZone[../../LabelZone=local-name($Valeur1)]"/>
    <xsl:value-of select="' POS :'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/PosZone[../LabelZone=local-name($Valeur1)]"/>
    <xsl:value-of select="' '"/>
    <xsl:value-of select="' LG :'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/LgZone[../LabelZone=local-name($Valeur1)]"/>
    <redirect:open file="{FALSE.out}"/>
    <redirect:write file="{FALSE.out}">
    TEST
    </redirect:write>
    <redirect:close file="FALSE.out"/>
    </xsl:template>

    pour detailler et être plus claire voici un synopsis

    j'ai un fichier A dans lequel je vérifie que ce fichier xml entrant ait tout les zone obligatoires renseignées
    tout celle qui ne le sont pas je les écrit dans le fichier résultat.

    si toutes les zones obligatoire sont présentes alors cela veux dire que mon fichier résultat n'aura que des éléments avec des balises xml sans données, donc que plutôt que d’écrire un fichier sans contenu je préféré arrêter la traduction.

    mon idée de base était d'implementer un variable global en début de transformation et de la modifier à chaque passage dans mon template
    mais en xslt on ne peut pas modifier une valeur de variale global donc mon idée était d'utiliser un fichier externe "comme une variable globale" pour lequel j'irais écrire une donnée à chaque passage dans mon template ,donnée que j'irais vérifier en fin de transformation afin de savoir si je l’arrête ou pas.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    "(Au fait, moi j'avais compris que à chaque fois qu'il entre dans un template pour faire son traitement normal, il veut en plus, à côté, écrire des infos dans un autre fichier. Ça c'est pas possible avec la syntaxe XSLT.)"


    oui c'est ça que je veux faire
    j'ai essayer avec la methode redirect mais j'ai un message d'erreur
    lorsque je passe ça dans visual studio ou xml spy il ne comprend pas le

    <redirect:write file="{fichier.XML}">


    pour réagir aux post d'avant pour arreter une transformation il faut utiliser

    <xsl:message terminate = "yes">

    pour lire dans un autre fichier j'utilise

    <xsl:value-of select="document(



    <xsl:template name='EAVI0001CTRL00010001_TEXTE'>
    <!-- *********************************************************************************************************************
    *
    * écrit le nom de zone dont la valeur n'est pas présente
    *
    *
    *
    ************************************************************************************************************************** -->
    <xsl:param name="Valeur1"/>
    <xsl:value-of select="local-name($Valeur1) "/>
    <xsl:value-of select="':'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/DetailsZone/DetailsLibelleZone[../../LabelZone=local-name($Valeur1)]"/>
    <xsl:value-of select="' POS :'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/PosZone[../LabelZone=local-name($Valeur1)]"/>
    <xsl:value-of select="' '"/>
    <xsl:value-of select="' LG :'"/>
    <xsl:value-of select="document('EAVIZONEM.xml')/Ci/Enregistrements/Enreg/Zones/Zone/LgZone[../LabelZone=local-name($Valeur1)]"/>
    <redirect:open file="{FALSE.out}"/>
    <redirect:write file="{FALSE.out}">
    TEST
    </redirect:write>
    <redirect:close file="FALSE.out"/>
    </xsl:template>

    pour detailler et être plus claire voici un synopsis

    j'ai un fichier A dans lequel je vérifie que ce fichier xml entrant ait tout les zone obligatoires renseignées
    tout celle qui ne le sont pas je les écrit dans le fichier résultat.

    si toutes les zones obligatoires sont présentes alors cela veux dire que mon fichier résultat n'aura que des éléments avec des balises xml sans données, donc que plutôt que d’écrire un fichier sans contenu je préféré arrêter la traduction.

    mon idée de base était d'implementer un variable global en début de transformation et de la modifier à chaque passage dans mon template
    mais en xslt on ne peut pas modifier une valeur de variale global donc mon idée était d'utiliser un fichier externe "comme une variable globale" pour lequel j'irais écrire une donnée à chaque passage dans mon template ,donnée que j'irais vérifier en fin de transformation afin de savoir si je l’arrête ou pas.

  7. #7
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 371
    Points
    2 371
    Par défaut
    Ok, ok, dommage que tu n'indique pas l'erreur que les programmes te retournent,
    au cas où es-ce tu as dans ta feuille de style le bon espace de noms :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:redirect="http://xml.apache.org/xalan/redirect"
      extension-element-prefixes="redirect">
    Après, avec les versions récentes de Xalan (à partir de la version 2.7.0 sûr), tu peux supprimer l'élément redirect:open.

    si toutes les zones obligatoires sont présentes alors cela veux dire que mon fichier résultat n'aura que des éléments avec des balises xml sans données
    cela me fait simplement penser à de la validation, mais valider à partir un DTD ou d'un XSD est plus simple que ce que tu cherche à faire.
    Article : Installation de Cocoon
    Je ne réponds pas aux MP à caractère technique.

Discussions similaires

  1. [TOMCAT] parametrage du fichier web.xml
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 06/05/2010, 12h09
  2. [ debutant ][ Tomcat ] Erreurs fichier web.xml
    Par zsoh dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 13/04/2005, 11h35
  3. [plugin]générer automatiquement un fichier web.xml
    Par car dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 15/03/2005, 16h04
  4. [Servlet] Erreur dans le fichier web.xml
    Par Crazyblinkgirl dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/07/2004, 15h20
  5. [TomCat][sécurité]config fichier web.xml
    Par liomac dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 24/09/2003, 15h46

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