Quel solution pour créer un fichier XML dans mon cas?

Quel solution pour créer un fichier XML dans mon cas? - Java - Programmation

Marsh Posté le 23-08-2006 à 09:06:58    

Bonjour,
Voilà je dois créer un fichier xml qui aurait cette allure:
 
 

Code :
  1. <Mail_Notes>
  2. <query>
  3.  <name>prenom.nom</name>
  4.  <start>Tuesday, August, 1, 2006 AM</start>
  5.  <end>Friday, August, 4, 2006 PM</end>
  6.  <return>Monday, August, 7, 2006 AM</return>
  7. </query>
  8. <query>
  9.  <name>prenom.nom</name>
  10.  <start>Tuesday, August, 8, 2006 AM</start>
  11.  <end>Friday, August, 11, 2006 PM</end>
  12.  <return>Monday, August, 14, 2006 AM</return>
  13. </query>
  14. <query>
  15.  <name>prenom.nom</name>
  16.  <start>Wednesday, August, 16, 2006 AM</start>
  17.  <end>Friday, August, 18, 2006 PM</end>
  18.  <return>Monday, August, 21, 2006 AM</return>
  19. </query>
  20. <query>
  21.  <name>prenom.nom</name>
  22.  <start>Monday, August, 21, 2006 PM</start>
  23.  <end>Tuesday, August, 22, 2006 PM</end>
  24.  <return>Wednesday, August, 23, 2006 AM</return>
  25. </query>
  26. <query>
  27.  <name>prenom.nom</name>
  28.  <start>Wednesday, August, 23, 2006 PM</start>
  29.  <end>Friday, August, 25, 2006 PM</end>
  30.  <return>Monday, August, 28, 2006 AM</return>
  31. </query>
  32. </Mail_Notes>


 
 
Ce fichier peut être beaucoup plus volumineux genre 100 fois plus au moins et doit être maillé pour être traité par Notrix pour alimenter Oracle...
Ma question est simple faut il que je crée mon XML à la main ou bien avec la Classe DOM ou autre?
Que me conseillez vous?
Merci
 

Reply

Marsh Posté le 23-08-2006 à 09:06:58   

Reply

Marsh Posté le 23-08-2006 à 09:33:24    

Bien sûr il faut que tu utilises une API qui va bien pour faire ça, tu vas pas le faire à la main. Il y a plein d'API pour manipuler du XML. En java je n'en ai utilisé qu'une, qui est assez facile : dom4j.
 
Un exemple vite fait pour montrer comment ça s'utilise :

Code :
  1. import org.dom4j.Document;
  2. import org.dom4j.DocumentHelper;
  3. import org.dom4j.Element;
  4. public class Foo {
  5.     public Document createDocument() {
  6.         Document document = DocumentHelper.createDocument();
  7.         Element root = document.addElement( "root" );
  8.         Element author1 = root.addElement( "author" )
  9.             .addAttribute( "name", "James" )
  10.             .addAttribute( "location", "UK" )
  11.             .addText( "James Strachan" );
  12.        
  13.         Element author2 = root.addElement( "author" )
  14.             .addAttribute( "name", "Bob" )
  15.             .addAttribute( "location", "US" )
  16.             .addText( "Bob McWhirter" );
  17.         return document;
  18.     }
  19. }


 
edit : allez j'ai envie d'en dire plus :
le site web : http://www.dom4j.org
il y a une page "QuickStart" qui offre une très bonne première approche.
 [:alb77]


Message édité par psychotek le 23-08-2006 à 09:34:37
Reply

Marsh Posté le 23-08-2006 à 10:34:46    

Merci :)

Reply

Marsh Posté le 29-08-2006 à 09:54:56    

Sinon, si tu veux vraiment pas t'embêter, jettes un oeuil du côté de XStream : http://xstream.codehaus.org/

Reply

Marsh Posté le 07-09-2007 à 15:41:13    

une petite question.
Prenons l'exemple de psychotek, l'objet "document" n'est pas encore un fichier xml, enfin il l'est mais dans notre buffer.
Moi je voudrais l'écrire dans un fichier genre "nom.xml" dans "c:\".
Comment on fait?
Et surtout comment on peut vérifier que le fichier existe déjà ou pas avant de le creer, et par exemple si il est créé rajouté ce qu'on a dans "document" dans ce dernier.
Merci de votre aide

Reply

Marsh Posté le 10-09-2007 à 10:10:01    

:bounce:

Reply

Marsh Posté le 11-09-2007 à 15:14:18    

j'ai fais un truc comme:

Code :
  1. FileWriter fichier = new FileWriter(nomFichier);
  2.  fichier.write(document.toString());
  3.  fichier.close();


 
 
 
mais ça marche pas


Message édité par goofy35 le 11-09-2007 à 15:15:53
Reply

Marsh Posté le 12-09-2007 à 15:43:21    

psychotek, pas mal du tout ta biblio.  
Moi personnellement je viens de découvrir : jdom  
http://cynober.developpez.com/tutoriel/java/xml/jdom/

Reply

Marsh Posté le 19-09-2007 à 14:37:39    

[Bien sûr il faut que tu utilises une API qui va bien pour faire ça, tu vas pas le faire à la main. Il y a plein d'API pour manipuler du XML. En java je n'en ai utilisé qu'une, qui est assez facile : dom4j.  
 
Un exemple vite fait pour montrer comment ça s'utilise :  
 
 
Code :
 
import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element; public class Foo {     public Document createDocument() {        Document document = DocumentHelper.createDocument();        Element root = document.addElement( "root" );         Element author1 = root.addElement( "author" )            .addAttribute( "name", "James" )            .addAttribute( "location", "UK" )            .addText( "James Strachan" );                Element author2 = root.addElement( "author" )            .addAttribute( "name", "Bob" )            .addAttribute( "location", "US" )            .addText( "Bob McWhirter" );         return document;    }}  
 
 
 
edit : allez j'ai envie d'en dire plus :  
le site web : http://www.dom4j.org  
il y a une page "QuickStart" qui offre une très bonne première approche.  
 [:alb77]  
]
 
je voulais vous demander où est stocké le fichier xml créé, est ce qu'il a un emplacement physique? et si c'est le cas ce code fonctionne aussi en j2me, est ce qu'il reste fonctionnel sur le tél comme sur l'ordi?
s'il vous plaît, ça urge.
merci beaucoup.

Reply

Marsh Posté le 19-09-2007 à 14:39:28    

désolée jsuis nouvelle sur ce forum, je ne sais pas comment vous faites pour encadrer les messages.
je sais que ça a l'air moche et que le code n'y est pas clair, mais faites un effort svp.

Reply

Marsh Posté le 19-09-2007 à 14:39:28   

Reply

Marsh Posté le 19-09-2007 à 14:42:32    

tu clickes sur le petit bouton "code" (le dernier à droite) dans l'éditeur et tu mets ton code entre les tags [ cpp][ /cpp] (sans espace) qui apparaissent


---------------
The Rom's, à votre service
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed