Parseur pour un texte

cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011 - 18 mai 2011 à 12:36
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 18 mai 2011 à 14:06
bonjour je veux crée un parseur en java qui va m'aider un extraire des informations pour les affiché en fichier xml y'a t'il quelqu'un qui peut m'aider

11 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mai 2011 à 13:11
Si tu veux juste lire le fichier XML, tu peux utiliser le parseur SAX,

Si tu dois modifier l'arbre, tu peux utiliser DOM
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mai 2011 à 13:14
Voilà les liens vers lesquels tu trouveras la doc et les .jar a ajouter à ton build path

http://www.saxproject.org/

http://www.jdom.org/downloads/index.html
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:18
le probleme c'est que je n'ai pas le droit d'utiliser ni le sax ni le dom
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:20
j'ai fait un programme mais j'ai une erreur je suis debutante en java alors je me retrouve bloqué c'est un travail que je dois remettre vendredi
0

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

Posez votre question
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mai 2011 à 13:24
Ha d'accord.

Quel est ton problème ? Pourquoi es tu bloquée ?
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:26
j'ai un message d'erreur qui est
String.substring(Unknown Source)
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:29
mon code c'est ca:
public class parseur{

public static void main(String[] args){
//le fichier texte
String fichier ="fichiertexte.txt";
//le fichier XML
String fichierXML ="fichierXML.xml";
//les attributs à insérer dans le xml
String bouteille= "";
String marque = "";
String composition= "";
try{
//fichier en lecture
InputStream ips=new FileInputStream(fichier);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader flux=new BufferedReader(ipsr);
//fichier en écriture
FileWriter fw = new FileWriter (fichierXML);
BufferedWriter bw = new BufferedWriter (fw);
PrintWriter fichierSortie = new PrintWriter (bw);
String ligne;
//on lit chaque ligne du fichier texte une par une
while ((ligne=flux.readLine())!=null){
//On lit les 2 premiers caractères : "
bouteille = ligne.substring(0, 1);
//On lit les 10 caractères suivants
marque = ligne.substring(2, 11);
//La fin de la ligne
composition = ligne.substring(12);
fichierSortie.print("<VALUE attributeName="bouteille" type="Simple" value="");
fichierSortie.print(bouteille);
fichierSortie.println("">");//le println pour aller à la ligne
fichierSortie.print("<VALUE attributeName="marque" type="Simple" value="");
fichierSortie.print(marque);
fichierSortie.println("">");
fichierSortie.print("<VALUE attributeName="composition" type="Simple" value="");
fichierSortie.print(composition);
fichierSortie.println("">");
}
//On ferme les flux
flux.close();
fichierSortie.close();
fichierSortie.println(""/>");


}
catch (IOException e){
e.printStackTrace();

// ou System.out.println("le message d'erreur que l'on souhaite");
}
}
}
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:32
il doit parcourir un fichier structuré par exemple les differentes marque de bouteille d'eau puis il me donne un fichier xml ou je vais retrouvé la marque ,la composition ..ect
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mai 2011 à 13:42
Tu dois avoir un problème avec substring lorsque la ligne lue est vide, la ligne est alors "" dans ce cas, tu ne peux pas récupérer les deux premiers caractères car la chaine est vide.

D'ailleurs pour récupérer les deux premiers caractères c'est substring(0, 2)

Pour résourdre ton problème, c'est d'ailleurs une bonne pratique à avoir, avant d'appeler une fonction, teste que tes objets peuvent répondre de la menière suivante :

if(ligne.lenght()>12){
//On lit les 2 premiers caractères : " 
bouteille = ligne.substring(0, 2);
//On lit les 10 caractères suivants
marque = ligne.substring(2, 11);
//La fin de la ligne
composition = ligne.charAt(12)+""; 
}
0
cs_sabine06 Messages postés 14 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 17 septembre 2011
18 mai 2011 à 13:53
j'ai ca comme message

java.lang.NoClassDefFoundError: parseur
Caused by: java.lang.ClassNotFoundException: parseur
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "mai
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 mai 2011 à 14:06
Tu as mal configuré ton classPath, est ce que tu as bien installé le compilateur ?

Va voir ce tuto :
http://forum.hardware.fr/hfr/Programmation/Java/toujours-savoir-classpath-sujet_41088_1.htm
0
Rejoignez-nous