Salut,
j'ai creé un code java pour parcourir un fichier XML et afficher quelques données ,
mais il a affiché des erreurs que je n'ai pas pu les corriger
voici le fichier XML:
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="utf-8" ?> <application> <interface nom="Magic_MED" longueur="600" largeur="700"> <barre-outil nom="jToolBar1" abscisse="......" ordonne="" /> </interface> </application>
Voici le 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
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
86
87
88
89
90
91
92
93
94
95 import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.w3c.dom.Node; import org.w3c.dom.Attr; import org.w3c.dom.NamedNodeMap; import javax.xml.parsers.FactoryConfigurationError; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.*; import org.w3c.dom.*; import org.w3c.dom.NodeList.*; import javax.xml.transform.*; import javax.xml.transform.TransformerFactory; import javax.xml.transform.Transformer; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.dom.DOMSource; import java.lang.*; import java.util.*; import javax.naming.directory.*; import java.io.*; import java.util.*; public class XMLReadWrite { static int longeur; static int largeur; public static void xmlCdeRead(String cdeName) throws Exception { try{ //récupère une instance de la classe de fabrication DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); //Récupère une instanxce de la classe DocumentBuilder DocumentBuilder parser=factory.newDocumentBuilder(); //Effectue le parsing avec récupération du noeud DOM Document Document document=parser.parse(cdeName); Element utilisateur=document.getDocumentElement(); System.out.println("*****************************"+utilisateur.getTagName()); NodeList application= utilisateur.getChildNodes(); System.out.println("*****************************"+application.getLength()); for(int i=0; i<application.getLength(); i++){ parcoursDocument(application.item(i), application.item(i).getNodeName()); System.out.println(application.item(i).getNodeName()); } }catch(FactoryConfigurationError e){ System.out.println("impossible de localiser une classe de construction"); } } public static void parcoursDocument(Node racine, String nom) { Element racTemp; Attr a , b ,rac; if(racine.getNodeType()==1) { if (nom.equals("interface")) { NamedNodeMap interf=racine.getAttributes() ; rac=(Attr)interf.item(0); if(rac.getValue().equals("Magic_MED")) { a=(Attr)interf.item(1); b=(Attr)interf.item(2); longeur = (int)(Float.parseFloat(a.getValue() )) ; largeur = (int)(Float.parseFloat(b.getValue() ) ); } } // if(nom.equals("application")) System.out.println("c est la racine"); } } static int longueur() { return(longeur);} static int largeur() { return(largeur);} static void affich() { System.out.println("*****************************"+longeur); System.out.println("*****************************"+largeur); } public static void main (String []args)throws Exception{ XMLReadWrite xx=new XMLReadWrite(); xx.xmlCdeRead("exemple.xml"); } }
et voici les erreurs:
org.xml.sax.SAXParseException: Elément racine de document manquant.
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)
at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
at XMLReadWrite.xmlCdeRead(XMLReadWrite.java:37)
at XMLReadWrite.main(XMLReadWrite.java:94)
s'il vous plait aider moi pour resoudre ce probleme
et merci
Partager