Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6002 connectés 

 


Dernière réponse
Sujet : [java+xml]petite question
darklord

veryfree a écrit a écrit :

les fichiers XML tu les crée avec un editeur special ?  




 
non UltraEdit. L'important c'est ton cerveau pour des petits fichiers comme ca (agencer les items proprement etc)


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
darklord

veryfree a écrit a écrit :

les fichiers XML tu les crée avec un editeur special ?  




 
non UltraEdit. L'important c'est ton cerveau pour des petits fichiers comme ca (agencer les items proprement etc)

veryfree les fichiers XML tu les crée avec un editeur special ?
darklord you're welcome ;)
veryfree

DarkLord a écrit a écrit :

bin ca a rien a voir avec le bean. Il te manque un jar c'est tout. Tu as xerces et jdom dans ton classpath ?  




 
 
ca je sait bien c etait pour te mettre au courant lol
 
bon ben en ajoutant xerces.jar
ca marche merci beaucoup
 :hap:

darklord bin ca a rien a voir avec le bean. Il te manque un jar c'est tout. Tu as xerces et jdom dans ton classpath ?
veryfree encore une question,
j ai crée mon bean qui remplace le tien
 
lorsque je compile j ai encore une erreur mais jvoi vraiment pas d'ou ca vien :(
 
 

C:\WINNT\Profiles\jeromes\Bureau\xml\PreferencesHelper.java:84: cannot access org.xml.sax.InputSource
file org\xml\sax\InputSource.class not found
           Document doc = builder.build(configFile);
                                 ^
1 error


 
c'est ici:

Code :
  1. MyBean pref = new MyBean();
  2.        try {
  3.            SAXBuilder builder = new SAXBuilder();
  4.            Document doc = builder.build(configFile);<<c ici qu'il bloque
  5.            Element root = doc.getRootElement();
  6.            if (!root.getName().equals(xml_root)) {
  7.                System.out.print("XML Config file is invalid. Invalid root: " + root.getName());
  8.                return pref;
  9.            }

veryfree

DarkLord a écrit a écrit :

tu peux me tutoyer tu sais ;)  (en réalité je travaille seul sur ce projet pour l'instant).
 
Tu as raison, le bean n'a pas encore été commité (ni ui d'ailleurs) chose que je ferai ce soir.
 
Tu veux le bean aussi ou quoi ?
 
c'est pas vraiment un example à executer tel quel, je voulais te montrer comment récupérer des fils, attributs, du texte, etc.  




 
 
oui jvien de voir,jvai essayé de comprendre le code que tu m a filé,jte tien au courant
 
 
 :hello:

darklord tu peux me tutoyer tu sais ;)  (en réalité je travaille seul sur ce projet pour l'instant).
 
Tu as raison, le bean n'a pas encore été commité (ni ui d'ailleurs) chose que je ferai ce soir.
 
Tu veux le bean aussi ou quoi ?
 
c'est pas vraiment un example à executer tel quel, je voulais te montrer comment récupérer des fils, attributs, du texte, etc.
veryfree

DarkLord a écrit a écrit :

oups c'est log4j. C'est un outil jakarta pour logger efficacement les programmes. Tu peux le remplacer par System.out (enfin remplacer m_logCat.warn, info, error etc par des System.out.println()  




 
 
ok merci  
et chui tomber sur cette page de votre cvs mais y a pas de repertoire ui (en vu d y trouver PreferencesBean)
 
http://cvs.sourceforge.net/cgi-bin [...] net/econf/

darklord oups c'est log4j. C'est un outil jakarta pour logger efficacement les programmes. Tu peux le remplacer par System.out (enfin remplacer m_logCat.warn, info, error etc par des System.out.println()
veryfree merci a vous deux:
j ai donc télécharger JDom
 
mais comment jdoit faire pour ne pas avoir besoin de ca


 private static org.apache.log4j.Category m_logCat =
           org.apache.log4j.Category.getInstance
           (PreferencesHelper.class.getName());


 
 
d ailleurs je sait meme pas a quoi ca correspond pour l instant,il en est de meme pour le Bean jpeut pas faire sans?
juste histoire de bien depoyer le code que tu m a fournis Dark
 
merci

darklord ah oui un detail. Le PreferencesBean c'est un bean tout ce qu'il y a de plus classique (avec des set get pour les différentes informations)
darklord

--greg-- a écrit a écrit :

 
oué avec plein de belles exception et tout
la grande classe  




 
PTDR :D

darklord c pas encore sur CVS mais ca va pas tarder (je te filerai le lien si tu veux). Voilà comment  sauver/loader un doc XML. C'est pas super super propre mais bon c'est un bon début je crois
 

Code :
  1. package be.ac.fundp.infonet.econf.ui.helper;
  2. import java.io.*;
  3. import java.util.*;
  4. import org.jdom.*;
  5. import org.jdom.output.XMLOutputter;
  6. import org.jdom.input.*;
  7. import be.ac.fundp.infonet.econf.ui.bean.PreferencesBean;
  8. /**
  9. * Helper for the Preferences UI. Allows to retrieve and save data from XML configuration file.
  10. * @author Stéphane Nicoll
  11. */
  12. public class PreferencesHelper {
  13.     /**
  14.      *  Logging object.
  15.      */
  16.     private static org.apache.log4j.Category m_logCat =
  17.             org.apache.log4j.Category.getInstance
  18.             (PreferencesHelper.class.getName());
  19.     public static final String configPath = System.getProperty("user.home" ) + File.separator + ".eConf" + File.separator + "config.xml";
  20.     private static final String xml_root = "econf-config";
  21.     private static final String xml_metaRoot = "meta-config";
  22.     private static final String xml_metaItem = "meta-item";
  23.     private static final String xml_audioRoot = "audio-config";
  24.     private static final String xml_audioFormat = "audioFormat";
  25.     private static final String xml_audioQuality = "audioQuality";
  26.     private static final String xml_audioSampleSize = "audioSampleSize";
  27.     private static final String xml_audioRendering = "audioRendering";
  28.     private static final String xml_miscRoot = "misc-config";
  29.     private static final String xml_tempDirectory = "tempDirectory";
  30.     private static final String xml_name = "name";
  31.     private static final String xml_value = "value";
  32.     /**
  33.      * Loads the data contained in the XML configuration file.
  34.      * @return An initialized PreferencesBean
  35.      */
  36.     public static PreferencesBean load() {
  37.         File f = new File(configPath);
  38.         if (f.exists()) {
  39.             return loadXMLDocument(f);
  40.         }
  41.         else
  42.             m_logCat.warn("Configuration file does not exist yet in: " + configPath);
  43.         return new PreferencesBean();
  44.     }
  45.     /**
  46.      * Saves the current status to the XML configuration file.
  47.      * @param prefs
  48.      * The user prefrences
  49.      * @exception IOException
  50.      * If an error occurs while saving
  51.      */
  52.     public static void save(PreferencesBean prefs) throws IOException {
  53.         File f = new File(configPath);
  54.         if (f.exists()) {
  55.             f.delete();
  56.             f.createNewFile();
  57.             saveXMLDocument(prefs, f);
  58.         }
  59.     }
  60.     /**
  61.      * Update the status of the system with the specified user prefrences
  62.      * @param prefs
  63.      * The user preferences
  64.      */
  65.     public static void updateCurrentStatus(PreferencesBean prefs) {
  66.     }
  67.     /**
  68.      * Loads the preferences contained in the specified file.
  69.      * @param configFile
  70.      * The XML containing user preferences.
  71.      * @return the beans contained loaded data or an empty bean if an error occured.
  72.      */
  73.     private static PreferencesBean loadXMLDocument(File configFile) {
  74.         PreferencesBean pref = new PreferencesBean();
  75.         try {
  76.             SAXBuilder builder = new SAXBuilder();
  77.             Document doc = builder.build(configFile);
  78.             Element root = doc.getRootElement();
  79.             if (!root.getName().equals(xml_root)) {
  80.                 m_logCat.error("XML Config file is invalid. Invalid root: " + root.getName());
  81.                 return pref;
  82.             }
  83.             Element metaElement = root.getChild(xml_metaRoot);
  84.             Element audioElement = root.getChild(xml_audioRoot);
  85.             Element miscElement = root.getChild(xml_miscRoot);
  86.             if ((metaElement == null) || (audioElement == null) || (miscElement == null)) {
  87.                 m_logCat.error("XML Config file is invalid. Missing mandatory part" );
  88.                 return pref;
  89.             }
  90.             Element audioFormat = audioElement.getChild(xml_audioFormat);
  91.             Element audioQuality = audioElement.getChild(xml_audioQuality);
  92.             Element audioSampleSize = audioElement.getChild(xml_audioSampleSize);
  93.             Element audioRendering = audioElement.getChild(xml_audioRendering);
  94.             if ((audioFormat == null) || (audioQuality == null) || (audioSampleSize == null) || (audioRendering == null)) {
  95.                 m_logCat.error("XML Config file is invalid. Missing audio part" );
  96.                 return pref;
  97.             }
  98.             Element tempDir = miscElement = root.getChild(xml_tempDirectory);
  99.             if (tempDir == null) {
  100.                 m_logCat.error("XML Config file is invalid. Missing misc part" );
  101.                 return pref;
  102.             }
  103.             // Meta
  104.             Iterator metas = (metaElement.getChildren()).iterator();
  105.             while (metas.hasNext()) {
  106.                 Element e = (Element) metas.next();
  107.                 if ((e.getAttribute(xml_name).getValue()).equals("author" )) {
  108.                     pref.setMetaAuthor(e.getAttribute(xml_value).getValue());
  109.                 }
  110.                 else if ((e.getAttribute(xml_name).getValue()).equals("copyright" )) {
  111.                     pref.setMetaCopyright(e.getAttribute(xml_value).getValue());
  112.                 }
  113.             }
  114.             /// Audio
  115.             pref.setAudioFormat(audioFormat.getText());
  116.             pref.setAudioQuality(audioQuality.getText());
  117.             pref.setAudioSampleSize(audioSampleSize.getText());
  118.             pref.setAudioRendering(audioRendering.getText());
  119.             // Misc
  120.             pref.setTempDirectory(tempDir.getText());
  121.             return pref;
  122.         }
  123.         catch (Exception e) {
  124.             m_logCat.error("Error while loading configuration file", e);
  125.             return new PreferencesBean();
  126.         }
  127.     }
  128.     /**
  129.      * Saves the preferences contained in the specified preferences in the specified file.
  130.      * @param configFile
  131.      * The XML containing user preferences.
  132.      * @return the beans contained loaded data or an empty bean if an error occured.
  133.      */
  134.     private static void saveXMLDocument(PreferencesBean pref, File f) throws IOException {
  135.         Element root = new Element(xml_root);
  136.         // Meta
  137.         Element metaRoot = new Element(xml_metaRoot);
  138.         Element metaAuthor = new Element(xml_metaItem);
  139.         Attribute name = new Attribute(xml_name, "author" );
  140.         Attribute value = new Attribute(xml_value, pref.getMetaAuthor());
  141.         metaAuthor.setAttribute(name);
  142.         metaAuthor.setAttribute(value);
  143.         Element metaCopyright = new Element(xml_metaItem);
  144.         name = new Attribute(xml_name, "copyright" );
  145.         value = new Attribute(xml_value, pref.getMetaCopyright());
  146.         metaCopyright.setAttribute(name);
  147.         metaCopyright.setAttribute(value);
  148.         metaRoot.addContent(metaAuthor);
  149.         metaRoot.addContent(metaCopyright);
  150.         // Audio
  151.         Element audioRoot = new Element(xml_audioRoot);
  152.         Element audioFormat = new Element(xml_audioFormat);
  153.         audioFormat.setText(pref.getAudioFormat());
  154.         Element audioQuality = new Element(xml_audioQuality);
  155.         audioQuality.setText(pref.getAudioQuality());
  156.         Element audioSampleSize = new Element(xml_audioSampleSize);
  157.         audioSampleSize.setText(pref.getAudioSampleSize());
  158.         Element audioRendering = new Element(xml_audioRendering);
  159.         audioRendering.setText(pref.getAudioRendering());
  160.         audioRoot.addContent(audioFormat);
  161.         audioRoot.addContent(audioQuality);
  162.         audioRoot.addContent(audioSampleSize);
  163.         audioRoot.addContent(audioRendering);
  164.         // misc
  165.         Element miscRoot = new Element(xml_miscRoot);
  166.         Element tempDir = new Element(xml_tempDirectory);
  167.         tempDir.setText(pref.getTempDirectory());
  168.         miscRoot.addContent(tempDir);
  169.         root.addContent(metaRoot);
  170.         root.addContent(audioRoot);
  171.         root.addContent(miscRoot);
  172.         Document doc = new Document(root);
  173.         FileOutputStream out = new FileOutputStream(f);
  174.         XMLOutputter fmt = new XMLOutputter();
  175.         fmt.setOmitEncoding(true);
  176.         fmt.output(doc, out);
  177.     }
  178. }


 
et le code XML qui est associé est le suivant
 

Code :
  1. <econf-config>
  2. <meta-config>
  3.  <meta-item name="author" value="Stephane Nicoll"/>
  4.  <meta-item name="copyright" value="(C) Stephane Nicoll 2002"/>
  5. </meta-config>
  6. <audio-config>
  7.  <audioFormat>MP3</audioFormat>
  8.  <audioQuality>22050Hz</audioQuality>
  9.  <audioSampleSize>16bits</audioSampleSize>
  10.  <audioRendering>mono</audioRendering>
  11. </audio-config>
  12. <misc-config>
  13.  <tempDirectory>c:\temp</tempDirectory>
  14. </misc-config>
  15. </econf-config>


 
et c'est du JDOM. je confirme ce que Greg dit c'est le plus simple selon moi

--greg--

DarkLord a écrit a écrit :

 
 
 :heink:  




oué avec plein de belles exception et tout
la grande classe

darklord

--greg-- a écrit a écrit :

j'ai un super framework pour toi sous la main si tu veux
[ct une private joke désolé]
 




 
 :heink:

--greg-- j'ai un super framework pour toi sous la main si tu veux
[ct une private joke désolé]
 
ben utilise jdom, césuperfacil
veryfree j'aimerait crer un fichier de proprités dans lequel je stockerait des infos qui serons chargée au demarage de mon programme java.
j aimerait utiliser un fichier XML mais je sait pas par ou commencer
si vous avez des adresses de site ou ce serait bien expliqué ce serait cool ou si quelqu'un veux se donner la peine de m'expliquer en quelques mots...
 
 
 
merci

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)