[Java] lecture de fichiers XML

lecture de fichiers XML [Java] - Java - Programmation

Marsh Posté le 20-08-2002 à 23:47:20    

Je cherche à lire un fichier XML dans son intégralité pour remplir une structure de donnée maison. Je suis donc en train de lire le tutorial de Sun sur XML, mais celui-ci est un peu touffu et repose plus sur l'écriture (enfin il me semble) que sur la lecture. Je cherche donc un bon tutorial ou un fichier exemple, ou une bonne âme pour m'expliquer un peu la lecture de fichiers XML.


---------------
Le site de ma maman
Reply

Marsh Posté le 20-08-2002 à 23:47:20   

Reply

Marsh Posté le 20-08-2002 à 23:48:05    

Reply

Marsh Posté le 20-08-2002 à 23:48:29    

les écheances approchent, et les topics désespérés se multiplient :D


Message édité par --greg-- le 20-08-2002 à 23:48:39
Reply

Marsh Posté le 20-08-2002 à 23:55:09    

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

les écheances approchent, et les topics désespérés se multiplient :D



Bien vu.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 08:44:53    

Moi j'ai juste regardé de loin comment ça se passait (j'aurai à interpréter un fichier XML prochainnement). J'peux juste te dire que, pour lire l'intégralité d'un fichier XML, il faut que t'utilises un parseur de type DOM (par exemple la classe DocumentBuilder qui se trouve dans le JAXP 1.0), plutot qu'un parseur type SAX.

Reply

Marsh Posté le 21-08-2002 à 09:16:39    

Juste une question, en passant, là, je suis en train de me farcir de bouquin de Rusty Harold dont l'URL m'a été filé par le site de JDOM (merci --greg-- :)), et je me rappelle que le tutorial Java parlait de JAXP comme partie de WSDP. Or j'avais cru comprendre que le J2SDK 1.4 contenait les primitives XML. Alors je suis allé matter le rt.jar pour voir et effectivement toutes les classes utilisées dans le tutorial sont dedans. Alors la question est : j'ai besoin de quoi en plus de mon J2SDK pour faire du XML ?


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 09:31:59    

Cherrytree a écrit a écrit :

Juste une question, en passant, là, je suis en train de me farcir de bouquin de Rusty Harold dont l'URL m'a été filé par le site de JDOM (merci --greg-- :)), et je me rappelle que le tutorial Java parlait de JAXP comme partie de WSDP. Or j'avais cru comprendre que le J2SDK 1.4 contenait les primitives XML. Alors je suis allé matter le rt.jar pour voir et effectivement toutes les classes utilisées dans le tutorial sont dedans. Alors la question est : j'ai besoin de quoi en plus de mon J2SDK pour faire du XML ?




 
JAXP est inclus dans le JDK 1.4...

Reply

Marsh Posté le 21-08-2002 à 09:37:27    

El_Gringo a écrit a écrit :

 
 
JAXP est inclus dans le JDK 1.4...



Impec' !


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 10:09:57    

El_Gringo a écrit a écrit :

Moi j'ai juste regardé de loin comment ça se passait (j'aurai à interpréter un fichier XML prochainnement). J'peux juste te dire que, pour lire l'intégralité d'un fichier XML, il faut que t'utilises un parseur de type DOM (par exemple la classe DocumentBuilder qui se trouve dans le JAXP 1.0), plutot qu'un parseur type SAX.




 
tu peux préciser. Parce que de primre à bord ca serait justement le contraire de ce que tu dis ... Particulièrement si le fichier XML est "gros"


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 10:11:07    

Cherrytree a écrit a écrit :

Juste une question, en passant, là, je suis en train de me farcir de bouquin de Rusty Harold dont l'URL m'a été filé par le site de JDOM (merci --greg-- :)), et je me rappelle que le tutorial Java parlait de JAXP comme partie de WSDP. Or j'avais cru comprendre que le J2SDK 1.4 contenait les primitives XML. Alors je suis allé matter le rt.jar pour voir et effectivement toutes les classes utilisées dans le tutorial sont dedans. Alors la question est : j'ai besoin de quoi en plus de mon J2SDK pour faire du XML ?




 
si tu fais du JaxP rien, si tu fais du JDOM euh je pense que jdom.jar suffit et il n'est pas très lourd. Disons que brider ton soft à JDK 1.4 c'est un peu "lourd" je trouve, sauf si le projet supporte jdk1.4 uniquement (ce qui est aussi "lourd" je trouve)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 10:11:07   

Reply

Marsh Posté le 21-08-2002 à 10:12:39    

DarkLord a écrit a écrit :

 
 
si tu fais du JaxP rien, si tu fais du JDOM euh je pense que jdom.jar suffit et il n'est pas très lourd. Disons que brider ton soft à JDK 1.4 c'est un peu "lourd" je trouve, sauf si le projet supporte jdk1.4 uniquement (ce qui est aussi "lourd" je trouve)



Ben, c'est un soft à usage interne. Si tu préfères, le client c'est moi et les gens de mon labo. Dans cet esprit, je pense qu'il n'y a pas de prérogatives à l'encontre de ce choix.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 10:13:17    

non mais ct juste une suggestion. pas une critique ....


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 10:13:33    

DarkLord a écrit a écrit :

 
 
tu peux préciser. Parce que de primre à bord ca serait justement le contraire de ce que tu dis ... Particulièrement si le fichier XML est "gros"



En effet, Rusty Harold préconise l'inverse. SAX + Xerces d'après elle.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 10:14:53    

DarkLord a écrit a écrit :

non mais ct juste une suggestion. pas une critique ....



Je sais, je sais. C'est juste pour préciser que le cadre du travail ne justifie pas une prise de décision sur le choix de comment faire du XML. A la limite, je peux même faire un fichier avec des ; séparant les valeurs. :D


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 10:35:49    

Cherrytree a écrit a écrit :

En effet, Rusty Harold préconise l'inverse. SAX + Xerces d'après elle.




 
non mais gringo a l'air de dire que quand tu dois lire TOUT un document il vaut mieux utiliser DOM. Ca peut etre vrai dans un sens mais DOM est déconseillé dès que l'arbre est trop important. pq?
 
DOM crée une représentation de l'arbre en méméoire AVANT de te donner accès au contenu (donc si tu as un fichier XML de 3Mo ou de 20Mo ca fait mal). Par contre si tu as un petit fichier XML c'est bcp mieux de prendre DOM car tu peux prendre les éléments que tu veux (parcourir l'arbre).
 
SAX fonctionne sur base d'évenements. Le fichier est considéré comme un flux et chaque fois qu'un évenement arrive (début de tags, etc) un évenement est généré et tu dois implémenter la méthode de callback pour récupérer l'info que tu veux (mais si tu veux le dernier élément de ton doc, sax va se promener du début à la fin quand meme).


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 10:41:25    

DarkLord a écrit a écrit :

 
 
non mais gringo a l'air de dire que quand tu dois lire TOUT un document il vaut mieux utiliser DOM. Ca peut etre vrai dans un sens mais DOM est déconseillé dès que l'arbre est trop important. pq?
 
DOM crée une représentation de l'arbre en méméoire AVANT de te donner accès au contenu (donc si tu as un fichier XML de 3Mo ou de 20Mo ca fait mal). Par contre si tu as un petit fichier XML c'est bcp mieux de prendre DOM car tu peux prendre les éléments que tu veux (parcourir l'arbre).
 
SAX fonctionne sur base d'évenements. Le fichier est considéré comme un flux et chaque fois qu'un évenement arrive (début de tags, etc) un évenement est généré et tu dois implémenter la méthode de callback pour récupérer l'info que tu veux (mais si tu veux le dernier élément de ton doc, sax va se promener du début à la fin quand meme).




 
...je suis d'accord !
Mais vu que DOM lit TOUT le fichier XML, ça me paraissait plus logique d'utiliser DOM ds son cas. Après, c vrai que, si le fichier est trop gros, c aussi possible de parcourir tout l'XML via une parseur SAX. Plus compliqué par contre (j'imagine. g jammais utilisé ni l'un, ni l'autre !)

Reply

Marsh Posté le 21-08-2002 à 10:45:21    

El_Gringo a écrit a écrit :

 
(j'imagine. g jammais utilisé ni l'un, ni l'autre !)




 
ah bon ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 10:52:08    

DarkLord a écrit a écrit :

 
 
ah bon ...




 
Mais je compte utiliser, donc j'ai lu. ça me donne le droit d'ouvrir ma gueule :D . Non !? :sarcastic:

Reply

Marsh Posté le 21-08-2002 à 11:01:21    

2 remarques au passage:
- JDOM utilise le modele dom (pour la representation interne du doc) mais ne souffre pas de la lourdeur de celui-ci pour le chargement. En 2 mots comme en 100, ça rulez, tu peux charger de "gros" docs xml sans te faire chier avec l'evenementiel mord moi le noeud de sax.
- Rusty c'est un prénom de FEMME ????!!! ???? :ouch:

Reply

Marsh Posté le 21-08-2002 à 11:03:50    

Elle s'appelle Eliotte, Rusty Harold, c'est son nom et il me semble bien que c'est une meuf. Elle publie pas mal sur Java et les réseaux, pour O'Reilly.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 11:10:29    

Comme le gragon?

Reply

Marsh Posté le 21-08-2002 à 11:11:57    

Cherrytree a écrit a écrit :

Elle s'appelle Eliotte, Rusty Harold, c'est son nom et il me semble bien que c'est une meuf. Elle publie pas mal sur Java et les réseaux, pour O'Reilly.




 
elle écrit d'excellent livre ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 11:13:33    

vivi j'ai déjà vu ce nom


Message édité par --greg-- le 21-08-2002 à 11:13:39
Reply

Marsh Posté le 21-08-2002 à 11:19:59    

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

Comme le gragon?



Le gragon, Eliot le gragon ? Presque ça quoi. Tiens, je vais drignoter un bout, j'ai faim. :lol: Sacré pur style --greg-- powaa de la mort tout de même.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 11:20:34    

va bossser :fou:

Reply

Marsh Posté le 21-08-2002 à 11:21:26    

DarkLord a écrit a écrit :

 
 
elle écrit d'excellent livre ...



Son livre sur XML qui disponible intégralement sur le web est pas mal, mais elle a un partie pris pour Xerces alors que j'aurai préféré Crimson (car il est en standard dans le J2SDK).


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 11:21:53    

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

va bossser :fou:



Oui monsieur. J'y vais.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 11:37:23    

sinon, si ce que tu veux faire c'est récupérer quelques info dans le doc XML et que tu t'en fout un peu des perfs, je te conseille d'utiliser les XPATH.
 
Je suis sur un projet où j'utilise ca avec xalan et c'est vraiment excelent !
 
si tu veux plus d'info la dessus, dis le et je détaille.

Reply

Marsh Posté le 21-08-2002 à 11:38:56    

benou a écrit a écrit :

sinon, si ce que tu veux faire c'est récupérer quelques info dans le doc XML et que tu t'en fout un peu des perfs, je te conseille d'utiliser les XPATH.
 
Je suis sur un projet où j'utilise ca avec xalan et c'est vraiment excelent !
 
si tu veux plus d'info la dessus, dis le et je détaille.




 
détaille stp...

Reply

Marsh Posté le 21-08-2002 à 11:40:44    

-> Article.
 
Question: ca sert à qqch les articles que benou et moi avont écris + le boulot de cheryrtree. Parce que là on a l'impression que c mort (examen inside peut eutre?)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 21-08-2002 à 11:41:20    

DarkLord a écrit a écrit :

-> Article.
 
Question: ca sert à qqch les articles que benou et moi avont écris + le boulot de cheryrtree. Parce que là on a l'impression que c mort (examen inside peut eutre?)



ce sujet à été debatu hier

Reply

Marsh Posté le 21-08-2002 à 11:42:04    

où?

Reply

Marsh Posté le 21-08-2002 à 11:43:39    

chéplus

Reply

Marsh Posté le 21-08-2002 à 12:12:48    

J'ai quelques soucis avec la deadline de mon stage, alors je mets le ola à tout mon travail sur Java@HFR pour les deux semaines à venir. Si je foire mon stage, je l'ai dans l'os pour le DEA et la 3A ingénieur. C'est vraiment pas dans mon intérêt. Par contre, une chose est certaine, je reprends les rênes du design et la fin de mon article sur "débuter en Java" dès que ce mic-mac est terminé. J'ai hâte de pouvoir m'y remettre vous savez. ça et le reste (plus de Warcraft III, bouh).


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 12:27:27    

C'est quoi les localName (ou sName) et les qName ?


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 12:40:01    

Les paramètres de la méthode startElement :

  • uri - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
  • localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
  • qName - The qualified name (with prefix), or the empty string if qualified names are not available.


Je vois pas bien ce qu'ils représentent sur un fichier XML.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 13:26:55    

c dans quoi cette methode?
c du sax?
serieux, utilise jdom, c 100fois plus facile....

Reply

Marsh Posté le 21-08-2002 à 13:34:34    

+1
 
sauf si tu as un petit fichier et que tu dois pecher des trucs au vol -> XPATH

Reply

Marsh Posté le 21-08-2002 à 13:36:46    

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

c dans quoi cette methode?
c du sax?
serieux, utilise jdom, c 100fois plus facile....



Plus le temps. J'avais fait du SAX l'an dernier, alors partant de JDOM je suis tombé sur le livre de Rusty H et j'ai lu SAX ça m'a rappelé des trucs donc mon choix pour ce projet c'est SAX. Par contre on dirait qu'avec les nouvelles specs de SAX, il y a des choses qui ont changé, notamment les Names.


---------------
Le site de ma maman
Reply

Marsh Posté le 21-08-2002 à 13:37:32    

SAX c'est relou. Franchement je déteste ...

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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