Jdom

Résolu
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006 - 24 avril 2006 à 14:45
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006 - 25 avril 2006 à 15:06
Bonjour tte le monde, j’espere que je suis la bienvenue dans
votre forum



Je veux parser un document XML et pour j’utilise JDOM, mais
le pb est que ce document je l’importe avec le JFilechooser donc j’ai pas un le
précis du document que je veux parser(le document va etre choisi par un utilisateur)



Et je ne sais pas comment entrer le chemin du document a
jdom pour qu’il le parse



Si qlq <st1:metricconverter productid="1 a" w:st="on">1 a</st1:metricconverter>
une idée n’hésite surtout pas a me la donné



Je vous remercie tous

19 réponses

cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
24 avril 2006 à 16:22
Si il suffit d'avoir le nom du fichier en String, et avec JFileChooser tu peux l'avoir.

tu fais ca :

JFileChooser dialogue = new JFileChooser();
File fichier = dialogue.getSelectedFile();
fichier.getName(); (ou le chemin du fichier avec getPath....)

a+
3
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
25 avril 2006 à 14:18
re

Je crois que j'ai trouvé :

tu traite le catch pour JDOMException mais pas pour IOException :

ajoute un catch supplémentaire avec IOException

a+
3
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
24 avril 2006 à 14:49
rebonjou,
pardon j'ais fais une erreur de frappe je voulais dire que j'ai pas le nom précis du document
merci a tous
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
24 avril 2006 à 17:23
Merci cbil,



mais tu sais le pb c'est que jdom ne va pas me parser le document voulu si je
lui mis tt simplement le nom du document, pour qu’il a le pouvoir de parser des
documents il faut que ces derniers soit dans le mme répertoire que mon projet
je pense et ce n'est pas le cas



merci pour ta réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
24 avril 2006 à 17:29
coucou,
tu sais tu ma donner la solution sans que tu le sais, en faite je peux mettre directement le nom du fichier, avec le foction .getSelectedFile();
merci encore une fois cbil
bon courage tt le monde
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
24 avril 2006 à 17:44
resalut,
pardon pour cette erreur mais le pb n'est pas résolu il me dit la variable x qui est le nom du fichier n'est pas static
si qlq 1 peut m'aider je le remercie vraiment
@+
0
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
24 avril 2006 à 17:48
Non non, tu peux mettre en parametre "String" du parseur, le lien vers le fichier (le fichier n'est pas obligatoirement dans le meme dossier : j'ai testé)

utilise la fonction suivante pour recuperer le chemin du fichier.
fichier.getAbsolutePath();

(si tu veux le lien relatif, il faut avoir le chemin de ton fichier executé et le chemin de ton fichier XML, et utiliser les fonctions de manipulation des String)

Voici comment manipuler :

//chemin avec nom du fichier du fichier Java qui est "executé" par la console java. (ou un fichier du meme repertoire)
String pathFichierJava = fichierJava.getAbsolutePath();
//chemin avec nom du fichier du fichier XML que tu souhaite parser
String pathFichierXML = fichierXML.getAbsolutePath();


//on garde uniquement le chemin du fichier Java (sans le nom du fichier)
String cheminAbsoluJava = pathFichierJava.substring(0,(pathFichierJava.length())-(fichierJava.getName().length()));



//le premier pour n'avoir que le chemin, le second pour avoir le chemin et le nom du fichier


//on retire ce qui commence par le chemin du fichier Java puis le nom du fichier XML
cheminRelatifXML = pathFichierXML.substring(cheminAbsoluJava.length(),pathFichierXML.length()-fichiers[0].getName().length());


ou


//la meme chose que precedemment en gardant le nom du fichier XML
cheminRelatifXML = pathFichierXML.substring(cheminAbsoluJava.length(),pathFichierXML.length());



//on change les caracteres \ par /
cheminRelatifXML = cheminRelatifXML.replace('\\','/');

Voila tu transmet ca a ton parseur : cheminRelatifXML (ou directement getAbsolutePath : le chemin complet : c:\.... en transformant peut-etre les \ par /)

a+
cbil
0
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
24 avril 2006 à 17:50
Pour le probleme du static verifie que ta fonction qui utilise la variable n'est pas static.

(j'ai eu le probleme tres recemment ;) )


a+
0
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
24 avril 2006 à 17:52
Desolé pour le texte, il n'est pas tres lisible, j'ai pas pensé a visualiser avant l'envoi et on peut pas editer le message ;)
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 10:09
Bonjour CBIL,

Merci pour ta réponse et pardon pour ce petit retard, pour le texte c'est pas
grave l'essentiel c'est qu’on s'entraide, je vais essayé de tester ce que tu ma
dis maintenant et je te rend la réponse, merci encore une fois





Bon courage a tt le monde
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 10:20
Coucou,

pour le pb de static tu as raison cbil c'est vrai j'ais pas fais attention,
mais pour parser le document le pb
persiste tjr, je vais essayé de le résoudre tte seule et si je n'arrive pas ben
j'attend votre aide

merci cbil

bon courage a vous tous
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 10:31
Salut,

pour être plus claire voila l'erreur qu'il me déclare

<!--[if !supportLineBreakNewLine]-->

<!--[endif]-->



unreported exception java.io.IOException; must be caught or
declared to be thrown at line 91, column 38



c'est qlq <st1:metricconverter productid="1 a" w:st="on">1 a</st1:metricconverter>
une idée de quoi il s'agit alors il n'hésite surtout a me la fournir et je vous remercie du fond du cœur

Merci a tous
0
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
25 avril 2006 à 13:42
Salut,

regarde ici :
http://b.kostrzewa.free.fr/java/qr/q10.html

Je pense que tu as du mal ecrire le try/catch

(possible d'avoir un peu de code ou se situe l'erreur sinon ?)

a+
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 13:56
coucou cbil,
pardon encore une fois pour hier
jais reposé la meme question dans : jdom pb non résolu et jais posé le code
mais je te le redonne le voila

String X ;
public void button2_actionPerformed(ActionEvent e) {
jFileChooser1.showOpenDialog(this);

File f = jFileChooser1.getSelectedFile();

X=f.getAbsolutePath();



}
....
public class TestJDOM3 {
public void main(String[] args) {
try {
SAXBuilder builder = new SAXBuilder();
builder.build(X);//je ne sais comment lui mettre le document a parser
} catch(JDOMException e) {
e.printStackTrace();
}

}
merci beaucoup cbil pour l'aide que tu m'offre
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 13:59
salut,
pardon cbil voila le vrai code
String X;

.

.

public void button2_actionPerformed(ActionEvent e) {

jFileChooser1.showOpenDialog(this);



File f = jFileChooser1.getSelectedFile();

X=f.getAbsolutePath();



}
.
public class TestJDOM3 {

org.jdom.Document document;

Element <st1:city w:st="on"><st1:place w:st="on">racine</st1:place></st1:city>;

public void main(String[] args) {

try {

SAXBuilder builder = new SAXBuilder();

Document document = builder.build(X);//l’erreur est la

} catch(JDOMException e) {


}



}

et il me dit

unreported exception java.io.IOException; must be caught or declared to be thrown at line 91, column 38

merci beaucoup
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 14:35
salut,

merci cbil je vais essayé j'espère que ça va marché

je te rends la réponse tte suite bien sur



Merci cbil
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 14:40
Coucou,

waw cbil sa marché je te remercie du fond du coeur tu ma sauver tu es le
meilleur

merci beaucoup



MMMMMMMMMMeeeeeeeerci
bon courage pour tous les autres
0
cs_cbil Messages postés 140 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 15 mai 2008 1
25 avril 2006 à 14:53
De rien, c'est le but du forum
Par contre, je suis tres loin d'etre le meilleur

Je bosse en ce moment sur le meme type de prog (XML, DOM...) donc ma pensée toute fraiche, les erreurs deja eu (j'suis debutant donc je me plante a chaque ligne, lol non quand meme pas, mais debutant si)

Allez a+ et bonne continuation !

cbil

PS : si tu veux te marrer ou avoir une preuve que j'ai eu des problemes similaires tout recemment : http://www.javafr.com/forum.v2.aspx?ID=712049
0
kaninama Messages postés 56 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 28 mai 2006
25 avril 2006 à 15:06
lol, jais lus ce que tu ma proposé, si le même cas pour moi,
je suis débutante en java et xml donc jais tjr des, pbs des fois je ne comprend même
pas la cause

bon courage a toi aussi

@+
0
Rejoignez-nous