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

Format d'échange (XML, JSON...) Java Discussion :

Utilisation d'un fichier XSL avec du code Java


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2011
    Messages : 137
    Par défaut Utilisation d'un fichier XSL avec du code Java
    Bonjour tout l'monde

    J'ai un fichier DTA à analyser (un flux à balancer sur une base de données en fait).

    J'utilise un fichier XSL pour placer les données sur la BDD en exécutant un batch. Je n'avais pas de problème pour le moment avec mes autres fichiers, car c'était de simples "copies' de données à mettre sur la BDD.

    Mais pour ce flux, je dois en fait checker la valeur d'une des colonnes du DTA, si elle est > à 10 000, je vais chercher le libellé associé à cette valeur dans une table de la BDD pour pouvoir insérer dans la table cible (qui possède que 2 champs) la valeur et le libellé.

    Le libellé est récupéré via du code java par la méthode getGroupeByTier(valeurColonne2) de la classe GroupeRetriever

    Voici un exemple du fichier DTA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "00030    "|"10092    "|1   |"2000-01-01"|"2039-12-31"|" "|"               "|"                                                  "
    "00033    "|"10698    "|1   |"2000-01-01"|"2039-12-31"|" "|"               "|"                                                  "
    "00035    "|"10018    "|2   |"2000-01-01"|"2039-12-31"|" "|"               "|"                                                  "
    Voici le fichier xsl :

    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
    27
    28
    29
    <!-- *************************** Pour chaques lignes************************************************************************* -->
    	<xsl:template match="ligne">
    		<xsl:element name="ligne">
    			<!-- ********************* table GROUPE *************************************-->
    			<xsl:element name="table">
    				<xsl:attribute name="nom">GROUPE</xsl:attribute>
                    <xsl:attribute name="retriever">com.cerpbn.extranet.metier.reglesGestions.GroupeRetriever</xsl:attribute>
     
                    <xsl:element name="colonne">
    					<xsl:attribute name="nom">GRO_ID</xsl:attribute>
                        <xsl:attribute name="pk">y</xsl:attribute>
    					<xsl:attribute name="type">INTEGER</xsl:attribute>
    					<xsl:attribute name="size">11</xsl:attribute>
    				</xsl:element>
     
    				<xsl:element name="colonne">
    					<xsl:attribute name="nom">GRO_LIBELLE</xsl:attribute>
    					<xsl:attribute name="type">VARCHAR</xsl:attribute>
    					<xsl:attribute name="size">255</xsl:attribute>
                        <xsl:attribute name="join">GRO_ID</xsl:attribute>
                        <xsl:if test="@name = 'GROID'" > 10 000>
                            <xsl:attribute name="method">getGroupeByTier(GRO_ID)</xsl:attribute>
                            <xsl:attribute name="class">com.cerpbn.extranet.metier.reglesGestions.GroupeRetriever</xsl:attribute>
                        </xsl:if> // ligne évidemment fausse, mais c'est l'idée que je veux développer
                    </xsl:element>
     
    			</xsl:element>
    		</xsl:element>
    	</xsl:template>

  2. #2
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Oui bon d'accord mais quelle est la question ?

    exemple d'utilisation de java depuis xsl :
    http://www17.homepage.villanova.edu/...haus/xsl/java/
    http://www.oxygenxml.com/archives/xs.../msg00331.html
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  3. #3
    Membre très actif
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2011
    Messages : 137
    Par défaut
    Comment je fais, dans mon fichier xsl, pour récup ma valeur de la 2° colonne de mon fichier DTA en faisant un "Si thisValue > 10000 alors ajouterDanLaBdd(LaValeur+getLibelle(thisValue))" où getLibelle ramène le libelle associé à ma valeur en faisant une requête select dans la bdd !

  4. #4
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    les liens que j'avais posté n'étaient pas très bons.

    Si la question est : comment utiliser java dans xls,
    il y a un bon exemple ici :http://jean-luc.massat.perso.luminy....l#idhtex-h3-30

    le code pour récupérer une valeur venant de java dans XSL serait donc :
    <xsl:value-of select="java:getGroupeByTier(valeurColonne2)" />

    Cependant si je comprends bien, il faut que le code java aille chercher une info dans une base à chaque fois que la condition > 10000 est remplie.
    Cela veut dire que si dans le fichier DAT, cette condition est remplie 1000 fois alors on va avoir un millier d'accès !
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  5. #5
    Membre très actif
    Profil pro
    Développeur Java
    Inscrit en
    Octobre 2011
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2011
    Messages : 137
    Par défaut
    Oui ...
    Et en fait 99% des valeurs testées sont > 10 000 et doivent être insérées dans la base, les autres je m'en occupe pas.

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Est-ce que le "xsl:value-of select=" fonctionne ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/03/2011, 14h16
  2. manipulation des fichier xsl avec vba excel
    Par naim8622 dans le forum Excel
    Réponses: 1
    Dernier message: 23/01/2009, 00h13
  3. utiliser un callback C++ natif avec du code .NET (en C#)
    Par nicolasflasque dans le forum C++/CLI
    Réponses: 3
    Dernier message: 28/11/2008, 11h58
  4. [access 2003] Supprimer un fichier .csv avec du code VBA
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 18/02/2008, 16h42
  5. Lire un fichier PHP avec du code PHP et l'afficher
    Par Prosis dans le forum Langage
    Réponses: 4
    Dernier message: 10/01/2008, 00h21

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