Creer un fichier xml avec dom et u e base de donnees

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 980 fois - Téléchargée 30 fois

Contenu du snippet

c un programme que j'ai fait pour pouvoir recuperer les donnees de ma base et de les mettre ds un fichier xml.

il marche plutot bien ,mais il est specifique a mon application, mais je pense qu'il peut vous aidez

Source / Exemple :


package ParserXML;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.w3c.dom.NodeList.*;
import javax.xml.transform.*;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.dom.DOMSource;
import conf.*;
import java.sql.*;
import java.lang.*;
import java.util.*;
import javax.naming.directory.*;
import datejour.*;

/**

  • <p>Titre : sogescom</p>
  • <p>Description : gestion commerciale</p>
  • <p>Copyright : Copyright (c) 2003</p>
  • <p>Société : </p>
  • @author loic
  • @version 1.0
  • /
public class DevisDOM { private long id; private String type; public ResultSet rs_corps=null; public ResultSet rs_ligne=null; public Connectdb db=null; public String code=""; public String id_type=""; public long cont_id; private String erreur="erreur : <br>"; public DevisDOM(long id,String type){ this.id=id; this.type=type; if(type.equals("devis")){ id_type="dev"; } if(type.equals("facture")){ id_type="fac"; } if(type.equals("bl")){ id_type="bl"; } String base = ""; String log_db = ""; String pass_db = ""; String pilote = "org.postgresql.Driver"; String url = "jdbc:postgresql://localhost/"; db = new Connectdb(); db.connect(base, log_db, pass_db, pilote, url); } public void CreerXml(boolean image) { double total_ht=0; double total_tva=0; double total_ttc=0; double accompte_double=0; double netapayer=0; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { //------------------------construction du fichier xml-------------------------- DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); //creation de l element racine <corps> Element corps = (Element) document.createElement("document"); // attribut corps.setAttribute("type", type); corps.setAttribute("id",id+""); if (image){ corps.setAttribute("image","true"); } //on le place ds l'arbre document.appendChild(corps); //===============================entete======================================== rs_corps = db.getQuery("select * from "+type+" where "+id_type+"_id=" +id+""); if(rs_corps.next()){ code=rs_corps.getString(id_type+"_code"); //creation DE LA BALISE <date_creation> Element date_creation = document.createElement("date_creation"); // on lui met la valeur entre le balise date_creation.appendChild(document.createTextNode(Datejour.dateformatsql(rs_corps.getDate( id_type+"_date_creation").toString()))); //appartient a entete corps.appendChild(date_creation); //creation DE LA BALISE <date_validite> Element date_validite = document.createElement("date_validite"); // on lui met la valeur entre le balise date_validite.appendChild(document.createTextNode(Datejour.dateformatsql(rs_corps.getDate( id_type+"_date_validite").toString()))); //appartient a entete corps.appendChild(date_validite); //creation DE LA BALISE <client> Element client = document.createElement("client"); // on lui met la valeur entre le balise //cont_id=rs_corps.getLong( "cont_id"); client.appendChild(document.createTextNode(""));//appartient a reference corps.appendChild(client); //creation DE LA BALISE <code> Element code = document.createElement("code"); // on lui met la valeur entre le balise code.appendChild(document.createTextNode(rs_corps.getString( id_type+"_code"))); //appartient a reference corps.appendChild(code); //creation DE LA BALISE <status> Element status = document.createElement("status"); // on lui met la valeur entre le balise status.appendChild(document.createTextNode(rs_corps.getString( id_type+"_status"))); //appartient a reference corps.appendChild(status); if(!type.equals("bl")){ //creation DE LA BALISE <paiement> Element paiement = document.createElement("paiement"); // on lui met la valeur entre la balise paiement.appendChild(document.createTextNode(rs_corps.getString(id_type+"_paiement"))); corps.appendChild(paiement); //creation DE LA BALISE <accompte> Element accompte = document.createElement("accompte"); // on lui met la valeur entre le balise accompte.appendChild(document.createTextNode(java.lang.String.valueOf(rs_corps.getDouble(id_type+"_accompte")))); corps.appendChild(accompte); accompte_double=rs_corps.getDouble(id_type+"_accompte"); } } //rs_contact = db.getQuery("select * from contact where cont_id='" +cont_id+"'"); // if(rs_contact.next()){ //creation DE LA BALISE <societe> appartient a coordonnees Element societe = document.createElement("societe"); // on lui met la valeur entre le balise societe.appendChild(document.createTextNode("societe")); corps.appendChild(societe); //creation DE LA BALISE <contact> appartient a coordonnees Element contact = document.createElement("contact"); // on lui met la valeur entre le balise contact.appendChild(document.createTextNode("contact")); corps.appendChild(contact); //creation DE LA BALISE <adresse> appartient a coordonnees Element adresse = document.createElement("adresse"); // on lui met la valeur entre le balise adresse.appendChild(document.createTextNode("adresse")); corps.appendChild(adresse); //creation DE LA BALISE <cp> appartient a coordonnees Element cp = document.createElement("cp"); // on lui met la valeur entre le balise cp.appendChild(document.createTextNode("cp")); corps.appendChild(cp); //creation DE LA BALISE <ville> appartient a coordonnees Element ville = document.createElement("ville"); // on lui met la valeur entre le balise ville.appendChild(document.createTextNode("ville")); corps.appendChild(ville); //} //==========================debut du traitement des lignes===================== // boucle sur toutes les lignes appartenant au corpss rs_ligne = db.getQuery("select * from ligne where "+id_type+"_id='" +id+"' order by lig_ordre"); while(rs_ligne.next()) { //-----------------------------debut ligne------------------------------------ //creation d'un nouveau noeud <ligne> appartenant a corpss Element ligne = document.createElement("ligne"); // on lui mais comme attribut son numero de ligne ds le corpss ligne.setAttribute("ordre",java.lang.String.valueOf(rs_ligne.getInt("lig_ordre"))); ligne.setAttribute("id",java.lang.String.valueOf(rs_ligne.getLong("lig_id"))); corps.appendChild(ligne); //creation DE LA BALISE <ref> appartient a ligne Element ref = document.createElement("ref"); // on lui met la valeur entre la balise ref.appendChild(document.createTextNode(rs_ligne.getString("lig_ref"))); ligne.appendChild(ref); //creation DE LA BALISE <description> appartient a ligne Element description = document.createElement("description"); // on lui met la valeur entre la balise String designation=rs_ligne.getString("lig_designation"); description.appendChild(document.createTextNode(designation)); ligne.appendChild(description); //creation DE LA BALISE <quantite> appartient a ligne Element quantite = document.createElement("quantite"); // on lui met la valeur entre le balise quantite.appendChild(document.createTextNode(java.lang.String.valueOf(rs_ligne.getDouble("lig_quantite")))); ligne.appendChild(quantite); if(!type.equals("bl")){ //creation DE LA BALISE <pu_ht> appartient a ligne Element pu_ht = document.createElement("pu_ht"); // on lui met la valeur entre le balise pu_ht.appendChild(document.createTextNode(""+rs_ligne.getDouble("lig_pu"))); ligne.appendChild(pu_ht); //creation DE LA BALISE <total_ht> appartient a ligne Element ligne_ht = document.createElement("total_ht"); // on lui met la valeur entre le balise ligne_ht.appendChild(document.createTextNode(""+rs_ligne.getDouble("lig_prix_total"))); ligne.appendChild(ligne_ht); //creation DE LA BALISE <tva> appartient a ligne Element tva = document.createElement("tva"); // on lui met la valeur entre le balise tva.appendChild(document.createTextNode(""+rs_ligne.getDouble("lig_tva")+"")); ligne.appendChild(tva); //calcul du prix total ht et de la tva total total_tva+=rs_ligne.getDouble("lig_prix_total")*(rs_ligne.getFloat("lig_tva")/100); total_ht+=rs_ligne.getDouble("lig_prix_total"); //------------------------------fin ligne-------------------------------------- }//fin if }//fin while ligne if(!type.equals("bl")){ total_tva=(Math.round(total_tva*Math.pow(10,2)) )/ (Math.pow(10,2)); total_ht=(Math.round(total_ht*Math.pow(10,2)) )/ (Math.pow(10,2)); total_ttc=total_tva+total_ht; total_ttc=(Math.round(total_ttc*Math.pow(10,2)) )/ (Math.pow(10,2)); if(type.equals("facture")){ netapayer=(Math.round((total_ttc-accompte_double)*Math.pow(10,2)) )/ (Math.pow(10,2)); //creation DE LA BALISE <netPayer> Element netpayer = document.createElement("netpayer"); // on lui met la valeur entre le balise netpayer.appendChild(document.createTextNode(java.lang.String.valueOf(netapayer))); //appartient a reference corps.appendChild(netpayer); } //creation DE LA BALISE <doc_tva> Element doc_tva = document.createElement("doc_tva"); // on lui met la valeur entre le balise doc_tva.appendChild(document.createTextNode(java.lang.String.valueOf(total_tva))); //appartient a reference corps.appendChild(doc_tva); //creation DE LA BALISE <doc_ht> Element doc_ht = document.createElement("doc_ht"); // on lui met la valeur entre le balise doc_ht.appendChild(document.createTextNode(java.lang.String.valueOf(total_ht))); //appartient a reference corps.appendChild(doc_ht); //creation DE LA BALISE <doc_ttc> Element doc_ttc = document.createElement("doc_ttc"); // on lui met la valeur entre le balise doc_ttc.appendChild(document.createTextNode(java.lang.String.valueOf(total_ttc))); //appartient a reference corps.appendChild(doc_ttc); } //=========================creaton du fichier xml=============================== code=code.substring(0,9); File baseDir = new File("/var/www/html/tomcat/sogescom/doc"); //File baseDir = new File("/var/www/html/tomcat/sogescom/doc"); File f = new File(baseDir, code+".xml"); StreamResult result=new StreamResult(f); DOMSource source =new DOMSource(document); TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.transform(source,result); } catch(Exception e) { erreur=erreur+"<br>"+e+"<br>"+e.getMessage()+"<br> "; } } public String getErrorMessage(){ return erreur; } }

Conclusion :


Normalement ca marche bien, peut etre des amelioration sont possible

A voir également

Ajouter un commentaire

Commentaires

cs_dragon
Messages postés
2336
Date d'inscription
samedi 14 juillet 2001
Statut
Membre
Dernière intervention
5 mai 2009
3 -
plus ismple encore, JBuilder 8 et 9 enterprise a des fonction XML donc certain qui s'appel "DTD to XML", "XML to DTD" et "XML-DBMS"
cs_ikm
Messages postés
2
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
18 janvier 2005
-
hello,
je voudrais avoir quelques APi sur Jprint , savoir comment configurer l'imprimante en java .. Merci.
Bryce_74
Messages postés
8
Date d'inscription
mardi 27 janvier 2004
Statut
Membre
Dernière intervention
21 mai 2005
-
Salut est ce que tu sauvegardes les paramètres des utilisateurs qui se connectent? Cad le login et password par exemple?
Merci
wissam_ibtissam
Messages postés
4
Date d'inscription
dimanche 5 mars 2006
Statut
Membre
Dernière intervention
6 mars 2006
-
Salut,
SVP, est ce que vous pouvez accéder aux shémas relationnelle de votre bases des données en utilisant SQL. c'est à dire la possibilité d'avoir la structure de la base de données noms des tables, leurs attributs, index...etc.

Merci d'avance.
anadeveloppeur
Messages postés
156
Date d'inscription
samedi 10 septembre 2005
Statut
Membre
Dernière intervention
21 février 2019
-
Bonjour.
Ce que je reproche dans les codes sources proposés dans le forums sur cette rubrique, c'est le manque d'informations sur la Base de données, un élément aussi important dans le programme.
Ce que je propose c'est de joindre dans le programme un script de la base de données au format SQL, ou de juste proposer le MCD de la BD, pour pouvoir réutiliser le programme.
Par exemple sous MySQL, il existe une option de génération du script SQL de la Base, ça existe aussi sous SQL Server. ça pourrait beaucoup aider.
Personnellement, ce programme est inutilisable pour moi, merci quand même.
A+

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.