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 :

Creation de plusieurs page HTML [DOM]


Sujet :

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

  1. #1
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut Creation de plusieurs page HTML
    Bonjour, voila mon code java permettant de créer une page html via un XML et mis en forme par un 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    public class Main {
    	public static void main(String[] args) {
    		try {
    			System.out.println("Go");		
    			//construction du fichier XML		DocumentBuilderFactoryfabrique=DocumentBuilderFactory.newInstance();		
    			fabrique.setNamespaceAware(true);			
    			// fabrique.setValidation(true);
    			DocumentBuilder analyseur =fabrique.newDocumentBuilder();
     
    			//création du fichier XML
    			Document doc=analyseur.parse(newFile("FR-FR-Form270207-4-1.xml"));
    			DOMSource sourceXML = new DOMSource(doc);
     
    			//Création du fichier XSL
    			doc = analyseur.parse(new File("test.xsl"));
    			DOMSource sourceXSL = new DOMSource(doc);
     
    			TransformerFactory trFact = TransformerFactory.newInstance();
    			Transformer transformeur = trFact.newTransformer(sourceXSL);
    			transformeur.setOutputProperty(OutputKeys.METHOD, "html");
    			transformeur.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
    			transformeur.setOutputProperty(OutputKeys.INDENT, "yes");
     
    			//transformeur.setParameter("num", "6");
     
    			File oFic = new File("resultat.vm");
    			FileOutputStream fos = new FileOutputStream(oFic);
     
    			if (fos != null) {
    				Result sortie = new StreamResult(fos);
    				transformeur.transform(sourceXML, sortie);
    			}
     
    			fos.flush();
    			fos.close();
    			System.out.println("XSL transf done");
     
     
    			Velocity.init();
    			VelocityContext context = new VelocityContext();
    			context.put( "date", new DateHelper());
    			Template template = Velocity.getTemplate("resultat.vm");
     
    			FileWriter fw = new FileWriter("result.html");
     
    			template.merge( context, fw );
    			fw.close();
    			System.out.println("Velocity transf done");					
    		} catch (Throwable t) {
    			t.printStackTrace();
    		}
    	}
     
    }
    Je souhaite créer à partir de ce XML plusieurs page HTML, mais ne sait pas comment faire.

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Et bien la meme chose avec un tableau et une boucle ???
    Ou alors ya un quelque chose que je vois pas ?

  3. #3
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    En fait le main a été fait par mon boss ... et comme je comprend pas tous les termes utilisés, si je pouvais une piste ca m'aiderais beaucoup.

    Merci ,

  4. #4
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Oui enfin une boucle, c'est un peu la base de la programmation non ?

    Sinon je te suggere de regarder pour chaque classe que tu ne comprends pas la doc correspondante dans l'api. Et essayer de faire quelque chose a partir de ca.
    Ensuite tu execute et si t'as des erreurs et bien, on essayera de t'aider.

  5. #5
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Désolé je me suis mal exprimé, ce qui me pose probleme c'est de savoir si je dois recréer un nouveau xsl pour la deuxieme page , ou si je peux identifier dans mon xsl le fait ke tel traitement doit correspondre a une nouvelle page html.

    Merci

  6. #6
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    A mon avis, tu peux garder un seul xsl pour toutes les pages.

    Enfin tout depend de ce que tu veux faire exactement ....

  7. #7
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    En fait , je génére en sortie des tableaux tout bete , ke je souhaiterais avoir sur des pages différentes.
    Mais comme dans le main , le XSL est identifié par son nom , je me demande comment mettre en place un traitement différent selon la page que l'on génère.

  8. #8
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Ok mais qu'est ce qui determine que le fait que tu fasses un traitement différent?

  9. #9
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    Le type de tableau que je dois avoir en sortie. J'ai des prérequis a réaliser ( en plannif ca donne , un plan de charge, un bilan de la référence initiale etc).

  10. #10
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Citation Envoyé par Katachana
    Le type de tableau que je dois avoir en sortie. J'ai des prérequis a réaliser ( en plannif ca donne , un plan de charge, un bilan de la référence initiale etc).
    Non, mais au niveau programmation ...

  11. #11
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut Traitement de plusieurs XML
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
     
    public static void maMethode(){
    		try {
    			System.out.println("Go");
     
    			//Selection des fichiers XML à traiter
    			  File file = new File("");
    			  String chemin = file.getAbsolutePath();
    		      File oChemin = new File(chemin);
    		      File[] oCollection = oChemin.listFiles();
    		      for(int i = 0; i < oCollection.length; i++){		      
    		      if (oCollection[i].getName().endsWith(".xml"))
    		    	  System.out.println("Nom de la cible : " + oCollection[i].getName());
     
     
    			//construction du fichier XML
    			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();				
    			fabrique.setNamespaceAware(true);			
    			DocumentBuilder analyseur = fabrique.newDocumentBuilder();
     
    			//création du fichier XML
    			Document doc = analyseur.parse(new File(oCollection[i].getName()));
    			DOMSource sourceXML = new DOMSource(doc);		
     
    			//Création du fichier XSL
    			doc = analyseur.parse(new File("test.xsl"));
    			DOMSource sourceXSL = new DOMSource(doc);
     
    			TransformerFactory trFact = TransformerFactory.newInstance();
    			Transformer transformeur = trFact.newTransformer(sourceXSL);
    			transformeur.setOutputProperty(OutputKeys.METHOD, "html");
    			transformeur.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
    			transformeur.setOutputProperty(OutputKeys.INDENT, "yes");
     
    			//transformeur.setParameter("num", "6");
    			File oFic = new File("resultat"+i+".vm");
    			FileOutputStream fos = new FileOutputStream(oFic);
     
    			if (fos != null) {
    				Result sortie = new StreamResult(fos);
    				transformeur.transform(sourceXML, sortie);
    							}
     
    			fos.flush();
    			fos.close();
    			System.out.println("XSL transf done");
     
    			Velocity.init();
    			VelocityContext context = new VelocityContext();
    			context.put( "date", new DateHelper());
    			Template template = Velocity.getTemplate("resultat"+i+".vm");
    			FileWriter fw = new FileWriter("result"+i+".xls");				
    			template.merge( context, fw );		
    			fw.close();
     
    			System.out.println("Velocity transf done");
     
    			}
    		} catch (Throwable t) {
    			t.printStackTrace();
    		}
    	}
    J'essaye de traiter tous les fichiers XML présent dans mon répertoire courant et de créer a chaque fois un fichier excel (resultat du traitement). Je ne comprend pas pourquoi ca plante....
    Le resulat est le traitement de 3 fichier XML sur 6 , et avec un fichier excel en sortie qui bug


    Merci d'avance !!


    Merci d'avance

  12. #12
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    Et quels sont les messages d'erreurs ?

  13. #13
    Membre confirmé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Points : 503
    Points
    503
    Par défaut
    j'ai resolu le probleme, il manquait juste une parenthese.....

    Merci quand meme !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer plusieurs pages html avec un seul CGI
    Par SPACHFR dans le forum Débuter
    Réponses: 0
    Dernier message: 03/03/2009, 12h08
  2. [Joomla!] [Joomla 1.5] Intégrer plusieurs pages html et php
    Par missmarion dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 19/07/2008, 18h18
  3. Créer plusieurs pages HTML avec un XML
    Par Jean Luc & Michel dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 12/12/2007, 10h57
  4. Partager du code Javascript entre plusieurs pages HTML
    Par oceane751 dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 10/01/2006, 16h20
  5. [XSLT] Diviser un fichiers xml en plusieurs pages html
    Par thibaut06 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/04/2005, 17h56

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