Parser java xml ? - Java - Programmation
Marsh Posté le 25-06-2003 à 11:46:09
jaxb? tu veux parler de jaxp? parce que si c'est bien ca, je n'ai pas de trace d'un tel package.
Marsh Posté le 25-06-2003 à 11:47:34
jaxb
il y a un exemple que je voudrais tester sur :
http://java.sun.com/webservices/docs/1.1/tutorial/doc/
Marsh Posté le 25-06-2003 à 11:48:09
Xerces d'Apache est bien. Mais y en a d'autres (que je connais pas ; Xerces est le seul avec lequel j'ai déjà joué).
cf http://xml.apache.org/xerces2-j/index.html
Marsh Posté le 25-06-2003 à 11:50:11
pilou50 a écrit : jaxb |
Ok, je ne connais pas celui là. Mais jaxp, juste au dessus dans les liens fonctionne très bien et est super simple à utiliser.
Marsh Posté le 25-06-2003 à 13:20:14
gizmo a écrit : |
J'ai suivi tes conseils et j'uilise jaxp.
Mais je ne comprends pas commend créer le 'handle' nécessaire (et à quoi ça correspond) :
saxParser.parse("priceList.xml", handler);
Merci
Marsh Posté le 25-06-2003 à 13:29:28
ReplyMarsh Posté le 25-06-2003 à 14:04:44
Argh !...
----------
org.xml.sax.SAXParseException: The processing instruction target matching "[xX][mM][lL]" is not allowed.
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.j
ava:1139)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:314)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:253)
at Parser3.load_marche(Parser3.java:22)
at Parser3.main(Parser3.java:32)
----------
Marsh Posté le 25-06-2003 à 14:23:07
ReplyMarsh Posté le 25-06-2003 à 17:58:28
Citation : J'ai suivi tes conseils et j'uilise jaxp. |
Le choix d'un parser (ou plus précisément d'une API XML) dépendra de ce que tu veux faire sur ton document :
- le parser (SAX) que tu as pris pour l'instant est de type évènementiel ; autrement dit, il impose de créer des 'handlers' pour définir un traitement automatique en fonction des données présentes dans ton doc;
- si tu veux parcourir ton document manuellement, lire des données, en ajouter, en supprimer, etc, alors il te faut une API comme JDOM, Xerces ou DOM4J ; elle utilisera un parser basé sur SAX pour traduire ton fichier en objet Document que tu pourras ensuite parcourir comme bon te semble.
Citation : Argh !... |
Balance ton fichier si il n'est pas trop gros...
Marsh Posté le 25-06-2003 à 18:17:52
Taiche a écrit : Xerces est le seul avec lequel j'ai déjà joué |
T'as gagné ? (petite forme aujourd'hui)
Marsh Posté le 25-06-2003 à 18:18:43
nraynaud a écrit : T'as gagné ? (petite forme aujourd'hui) |
Pour l'instant, je gagne
Mais il prend sa revanche quand il peut lorsqu'il récupère un document XML tronqué
Marsh Posté le 25-06-2003 à 18:26:21
Taiche a écrit : |
Cesse-donc d'utiliser des outils professionels pour t'amuser ! (oulala, c'est une petite dépression hivernale je crois)
Marsh Posté le 26-06-2003 à 10:54:19
Merci pour ces explications.
Voila ce que je dois faire : Je récupère des données et crée des objets (beans) java avec ces données. Je me suis limité au parser SAX. Ca marche. (je n'ai pas forcément le temps d'appronfondir).
Mais un autre problème est apparu :
Je ne peux pas parser des chaines qui contient des acccents. Merci d'avance pour votre aide.
par ex :
<nom>etienne</nom> va marche alors que :
<nom>étienne</nom> va lever une exception :
-------
org.xml.sax.SAXParseException: Erreur de conversion de caractÞre : "Malformed UT
F-8 char -- is an XML encoding declaration missing?" (le numÚro de ligne peut Ût
re trop bas).
at org.apache.crimson.parser.InputEntity.fatal(InputEntity.java:1100)
at org.apache.crimson.parser.InputEntity.fillbuf(InputEntity.java:1072)
at org.apache.crimson.parser.InputEntity.isXmlDeclOrTextDeclPrefix(Input
Entity.java:914)
at org.apache.crimson.parser.Parser2.maybeXmlDecl(Parser2.java:1009)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:486)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:305)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:442)
at org.xml.sax.helpers.XMLReaderAdapter.parse(XMLReaderAdapter.java:223)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:314)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:253)
at Parser3.load_marche(Parser3.java:22)
at Parser3.main(Parser3.java:32)
-------
(message posté aussi dans un nouveau thread)
Marsh Posté le 26-06-2003 à 13:59:52
il faut que tu règle correctement l'encoding en ajoutant ca comme première ligne du fichier xml :
<?xml version="1.0" encoding="ISO-8859-1"?>
Marsh Posté le 27-06-2003 à 09:28:32
benou a écrit : il faut que tu règle correctement l'encoding en ajoutant ca comme première ligne du fichier xml : |
Très bien, merci beaucoup.
A +
Marsh Posté le 25-06-2003 à 11:42:40
bonjour,
Je voudrais parser un doc xml en objet java, très simple.
Que me conseillez-vous? Avez-vous un exemple ?
(J'ai essayé de tester jaxb mais j'ai un pb avec le package primer.po, introuvable)
Merci de vos conseils