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

  FORUM HardWare.fr
  Programmation
  Java

  [XML] parser avec SAX....

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML] parser avec SAX....

n°646053
spitagor
Posté le 17-02-2004 à 21:27:15  profilanswer
 

Je vous expose mon probleme :
 
je veux parser un fichier XML qui a cette tete :
 

Code :
  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <Album Chemin="C:\Albums\Album Vidéo\test" Date="17/02/2004" Titre="test" Type="Album Vidéo"/>


 
j'utilise donc SAX avec le code suivant (j'ai viré les try/catch vu ke ca ne me sort pas d'exceptions...:
 

Code :
  1. SAXParserFactory usine = SAXParserFactory.newInstance();
  2.       SAXParser analyseur = usine.newSAXParser();
  3.       this.dah = new DefaultAlbumHandler(f.getAbsolutePath());
  4.       analyseur.parse(f, dah);


 
la classe DefaultAlbumHandler :
 
 

Code :
  1. public void startDocument() {
  2.     System.out.println("on lit le fichier album" );
  3.   }
  4.   public void startElement(String uri, String local, String raw,
  5.                            Attributes attrs) throws SAXException {
  6.     System.out.println("on a trouvé un Element" );
  7. }


 
donc arrivé la il me dit qu'il lit le fichir album (donc on est rentré dans le document XML
 
Mais le probleme c'est qu'il me trouve pas d'element puisqu'il ne m'affiche pas "on a trouvé un élement"
 
Du coup je comprend pas puisqu'il y a bien un element dans mon fichier ! :pt1cable:  
 
Je croyais par ailleurs qu'il fallait utiliser xerces mais si il me dit qu'il rentre dans le document il devrait aussi trouver les elments ...?  
 
Merci de votre aide...


Message édité par spitagor le 18-02-2004 à 01:42:27
mood
Publicité
Posté le 17-02-2004 à 21:27:15  profilanswer
 

n°646507
nerisson
Pic-pic
Posté le 18-02-2004 à 10:05:42  profilanswer
 

Si tu surchargeais d'autre methodes, comme warning(), error() ou fatalError() en affichant un piti message ?


---------------
Light is right
n°646966
spitagor
Posté le 18-02-2004 à 13:37:17  profilanswer
 

effectivement j'ai une fatalError...
 
seulement je capte pas trop le contenu de l'erreur :
 
org.xml.sax.SAXParseException: Erreur de conversion de caractère : "Malformed UTF-8 char -- is an XML encoding declaration missing?" (le numéro de ligne peut être trop bas).
 
si quelqu'un a une idée... :whistle:  
 
le probleme c'est que dans la meme application je parse exactement le meme fichier avec la meme methode et il ne me met pas d'erreur ... :pt1cable:  c pour ca que je comprends pas...
 
 

n°647003
gilou
Modérateur
Modzilla
Posté le 18-02-2004 à 13:48:42  profilanswer
 

Le message d'erreur etait pourtant explicite!
 
Album Vidéo
 
Tu indiques que tu es en UTF-8, et tu utilise quelque chose qui n'est pas en UTF-8.
 
A+,


Message édité par gilou le 18-02-2004 à 13:50:55

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°647012
spitagor
Posté le 18-02-2004 à 13:51:19  profilanswer
 

naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaannnnn....  
 
du coup c koi l'encoding pour supporter les accents?


Message édité par spitagor le 18-02-2004 à 13:51:37
n°647028
spitagor
Posté le 18-02-2004 à 13:55:03  profilanswer
 

j'essaie iso-8859-1 pour voir...
 
et ya aussi un truc que je comprends toujours pas c'est que je fais exactement pareil a un autre endroit dans mon application... et ca marche meme avec les accents...


Message édité par spitagor le 18-02-2004 à 13:56:24
n°647034
gilou
Modérateur
Modzilla
Posté le 18-02-2004 à 13:56:24  profilanswer
 

Ce serait plutot a toi de te poser la question: En quel encoding sont les données que je fournis au parser.
Parce que le seul qui puisse y repondre c'est toi: je ne sais pas d'ou viennent tes données.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°647047
spitagor
Posté le 18-02-2004 à 14:02:11  profilanswer
 

ben les données c'est des données textes en francais... du latin koi...  
 
je vais aller voir ca sur le site officiel...
 
merci de ton aide


Message édité par spitagor le 18-02-2004 à 14:02:32
n°647088
spitagor
Posté le 18-02-2004 à 14:31:14  profilanswer
 

c'est bizarre ca me fait pareil avec iso8859-1... le meme type de message d'erreur :
 
 

Code :
  1. Unconvertible UTF-8 character beginning with 0xb8"


 
pourtant l'encoding pour pouvoir parser  les accents farncais c bien iso-8859-1  :(

n°647129
gilou
Modérateur
Modzilla
Posté le 18-02-2004 à 14:47:19  profilanswer
 

T'as essayé avec le nom tout en majuscule: ISO-8859-1 ??  
C'est ainsi que ca doit etre d'apres la spec XML.
A+,


Message édité par gilou le 18-02-2004 à 14:50:02

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 18-02-2004 à 14:47:19  profilanswer
 

n°647203
spitagor
Posté le 18-02-2004 à 15:12:55  profilanswer
 

oui j'ai essayé mais ca me met toujours le meme message d'erreur...
 

n°647435
spitagor
Posté le 18-02-2004 à 16:54:36  profilanswer
 

je crois que c'est un gros probleme en fait ! j'ai regardé partout sur le net et peu ou pas de solution !

n°647706
yo c spi
Yo !
Posté le 18-02-2004 à 20:12:49  profilanswer
 

Le problème vient que tu n'es pas en ISO-latin-1 (iso-8859-1) partout dans ton appli ou ton XML je pense (0xb8 est un caractère en UTF-8). A vérifier .......

n°648627
spitagor
Posté le 19-02-2004 à 15:18:43  profilanswer
 

ok.... mais honnetement je trouve un truc vraiment incomprehensible : j'ai STRICTEMENT et EXACTEMENT le MEME code dans une autre classe de mon Appli et le MEME fichier est parsé nikel ! j'arrive a trouver des elements dedans etc...
 
ca me soule j'ai jamais vu ca... si ca continue je vais me pendre !!!
 
 :(  Pourtant je cherche a comprendre mais y doit y avoir quelque chose qui m'echappe la... :pt1cable:
 
 
PS : pour info j'ai essayé de convertir toutes mes String en UTF-8 via ca :

Code :
  1. album.setAttribute("Date", URLEncoder.encode(dateString,"UTF-8" ));


 
Mais j'ai toujours la meme SAXParseExcpetion  :  

Code :
  1. org.xml.sax.SAXParseException: Erreur de conversion de caractère : "Unconvertible UTF-8 character beginning with 0xff" (le numéro de ligne peut être trop bas).


Message édité par spitagor le 19-02-2004 à 15:23:54
n°648649
anapajari
s/travail/glanding on hfr/gs;
Posté le 19-02-2004 à 15:28:56  profilanswer
 

c'est pas plutot le \A qui merdoie?

n°648839
yo c spi
Yo !
Posté le 19-02-2004 à 17:44:22  profilanswer
 

anapajari a écrit :

c'est pas plutot le \A qui merdoie?


Mais oui!
Faut faire vachement gaffe aux anti-slashs dans les XML.
Regarde de ce coté la, faut bien configurer la parseur.

n°648895
spitagor
Posté le 19-02-2004 à 19:43:11  profilanswer
 

??? a ce propos j'utilise un SAXParser .. il vaut mieux utiliser Xerces? pasque finalement je me demande a koi sert xerces vu que on peut parser avec SAXParser...
 
sinon pour le \ je vais voir comment configurer le Parser... si c'est ca je ne saurais comment vous remercier.. !!!
 
edit : c'est le Handler qu'il faut configurer ou le parseur lui meme? pasque la je regarde les mrthodes et je vois pas grand chose...


Message édité par spitagor le 19-02-2004 à 19:47:47
n°649012
gilou
Modérateur
Modzilla
Posté le 19-02-2004 à 21:14:53  profilanswer
 

yo c spi a écrit :


Mais oui!
Faut faire vachement gaffe aux anti-slashs dans les XML.
Regarde de ce coté la, faut bien configurer la parseur.

:non:  :non:  :non:  
En xml, un \ est un \.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°649162
spitagor
Posté le 20-02-2004 à 00:22:28  profilanswer
 

Je confirme ... ca marche tres bien en UTF 8 !!! pas de probleme a priori meme avec les accents...
 
Mais le truc fou  :fou:  c'est que je fais le meme traitement a un autre endorit de mon appli.... les meme parametres passés a mon Handler etc... je suis SUR que c'est le meme code j'ai meme refait un copier/coller....
 
Vous avez deja vu ca  du code qui marche a un endroit de l'appli et qui ne marche pas a un autre endroit ?  :pt1cable:  
 
Je parse un fichier dans une classe, pas d'exceptions :)  
 
Je parse ce meme fichier dans une autre classe (meme code pour ceux qui auraient pas suivi), fatalError :( ... :fou:  
 
c'est décidé je passe cette nuit et je me pends :fou:  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [XML] parser avec SAX....

 

Sujets relatifs
Analyse XML comment faire ? [Resolu][XML] créer un fichier XML
[java] envoie de fichier XML entre 2 clientsprobleme pour parser un format notation scientifique (ex : e-179) JAVA
XML -> String et chemins de fichiersXSLT, DOM ou SAX
[XML-RPC] implémentation JAVA - Où trouver de la doc précise ?[Java-XML] Arret de lecture d'un fichier XML avec un parser SAX
PERL et XML comment parser avec SAX[XML / Java] SAX Parser API needed !
Plus de sujets relatifs à : [XML] parser avec SAX....


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR