Bonjour, j' essaie de parser un fichier xml avec jakarta Digester et ça marche assez bien. Je voudrais aussi gérer les erreurs et pour ça j' ai introduit une petite erreur dans mon xml. Digester me renvoie une SAXParseException, mais je ne passe pas dans le catch... pourquoi ?
un extrait de mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //classe CVDigester public OnlineCV cvParser (String fileName){ Digester digester = new Digester(); OnlineCV cv = null; File inputFile = new File( fileName ); //blablabla... try { cv = (OnlineCV)digester.parse( inputFile ); } catch(org.xml.sax.SAXParseException e) { System.out.println("erreur de parsing pour le fichier"+fileName); } catch(org.xml.sax.SAXException e) { System.out.println("erreur de parsing (2) pour le fichier "+fileName); } catch (Exception e){ System.out.println("plop"); } System.out.println("parsing terminé !"); return cv;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 //main public static void main(String args[]){ CVDigester cvDigester = new CVDigester(); OnlineCV cvMain; cvMain = cvDigester.cvParser((String)args[0]); ...
Et à l' exécution :
Merci d' avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 GRAVE: Parse Error at line 21 column 27: Attribute "nom_usage" is required and must be specified for element type "etat_civil". org.xml.sax.SAXParseException: Attribute "nom_usage" is required and must be specified for element type "etat_civil". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.addDTDDefaultAttrsAndValidate(Unknown Source) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1728) at cvParser.CVDigester.cvParser(CVDigester.java:430) at cvParser.MainTest.main(MainTest.java:15) parsing terminé !![]()
Partager