SAXParseException: Elément racine de document manquant.
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:
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:
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:
Citation:
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