j'ai la simple classe suivante avec jdom:
classe de test, c'est pour ça le code né pas propre
et jai les erreurs de compilation suivante:
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 package com.yourcompany.JDOMXmlManager; import java.util.*; import java.util.Collection; import java.io.*; import java.io.*; import org.jdom.*; import org.jdom.output.*; public class JDOMTest { //simple class de test //later cette classe aura une méthode qui appel lobjet bean de la page jsp et extrait le fichier //XML! check conception later, better way private Collection objectToBeExtracted; ///////les element statiques pour définir les noms des balises... //Nous allons commencer notre arborescence en créant la racine XML //qui sera ici "personnes". static Element racine = new Element("personnes"); //On crée un nouveau Document JDOM basé sur la racine que l'on vient de créer static org.jdom.Document document = new Document(racine); public JDOMTest() { super(); // TODO Auto-generated constructor stub } public void testFunction() { //On crée un nouvelle Element etudiant et on l'ajoute //en temps qu'Element de racine Element etudiant = new Element("etudiant"); racine.addContent(etudiant); //On crée un nouvelle Attribut classe et on l'ajoute à etudiant //grâce à la méthode setAttribute Attribute classe = new Attribute("classe","P2"); etudiant.setAttribute(classe); //On crée un nouvelle Element nom, on lui assigne du text //et on l'ajoute en temps qu'Element de etudiant Element nom = new Element("nom"); nom.setText("CynO"); etudiant.addContent(nom); //Les deux appels qui suivent seront définis dans la partie 2.3. //affiche(); enregistre("Exercice 1.xml"); ; } //les deux méthodes affiche et enregistre //////////////////////////////////////////////////////////////////////////////////////////// // Ajouter ces deux méthodes à notre class JDOM //once test Ok, cette partie à améliorer le maximum //selon les besoins du stockage .. static void affiche() { try { //On utilise ici un affichage classic avec getPrettyFormat() XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat()); sortie.output(document, System.out); } catch (java.io.IOException e){} } static void enregistre(String fichier) { try { //On utilise ici un affichage classic avec getPrettyFormat() XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat()); //Remarquez qu'il suffit simplement de créer une instance de FileOutputStream //avec en argument le nom du fichier pour effectuer la sérialisation. sortie.output(document, new FileOutputStream(fichier)); } catch (java.io.IOException e){} } //////////////////////////////////////////////////////////////////////////////////////////// }
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 RAVE: Parse Error at line 6 column 19: Document root element "taglib", must match DOCTYPE root "null". org.xml.sax.SAXParseException: Document root element "taglib", must match DOCTYPE root "null". at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1765) at org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:929) at org.apache.catalina.startup.ContextConfig.tldScanJar(ContextConfig.java:863) at org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:810) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:588) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:182) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3644) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1148) at org.apache.catalina.core.StandardHost.start(StandardHost.java:697) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1148) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:311) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2213) at org.apache.catalina.startup.Catalina.start(Catalina.java:459) at org.apache.catalina.startup.Catalina.execute(Catalina.java:346) at org.apache.catalina.startup.Catalina.process(Catalina.java:130) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:151) 27 sept. 2007 14:58:07 org.apache.commons.digester.Digester error GRAVE: Parse Error at line 6 column 19: Document is invalid: no grammar found. org.xml.sax.SAXParseException: Document is invalid: no grammar found. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.commons.digester.Digester.parse(Digester.java:1765) at org.apache.catalina.startup.ContextConfig.tldScanStream(ContextConfig.java:929) at org.apache.catalina.startup.ContextConfig.tldScanJar(ContextConfig.java:863) at org.apache.catalina.startup.ContextConfig.tldScan(ContextConfig.java:810) at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:588) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:182) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) at org.apache.catalina.core.StandardContext.start(StandardContext.java:3644) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1148) at org.apache.catalina.core.StandardHost.start(StandardHost.java:697) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1148) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:311) at org.apache.catalina.core.StandardService.start(StandardService.java:450) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2213) at org.apache.catalina.startup.Catalina.start(Catalina.java:459) at org.apache.catalina.startup.Catalina.execute(Catalina.java:346) at org.apache.catalina.startup.Catalina.process(Catalina.java:130) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:151)
Partager