BONJOUR!
SVP ! donnez moi une idée comment faire pour lire des données d'un fichier XML à partir d'une classe java .
MERCI Bc !
BONJOUR!
SVP ! donnez moi une idée comment faire pour lire des données d'un fichier XML à partir d'une classe java .
MERCI Bc !
Il te faut utiliser soit un parseur XML (DOM, JDOM, SAX, ...) ou alors, tu le lis comme un fichier texte en extrayant les infos dont tu as besoinEnvoyé par kamaldev
![]()
tu peux voir dans la faq (partie xml)
http://java.developpez.com/faq/java/?page=langage_xml
edit : je vois pas de faw....mauvaise fois![]()
merci d avance
mais en fait la faw c'est quoi exactement?
C'est une FAQ qui prend son Q pour un W...Envoyé par kamaldev
![]()
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
à vrai dire je veux faire marcher ce programme mais il marche pas ! il y a une erreur sur la ligne rouge :
à l execution : il affiche sur la console le message suivant :
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 import java.io.*; import java.text.Format; import org.jdom.*; import org.jdom.Document; import org.jdom.output.*; import javax.xml.parsers.*; import org.w3c.dom.*; import org.xml.sax.*; public class JDOM1 { public static void main(String[] args){ try{ // création d'une fabrique de documents DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); // création d'un constructeur de documents DocumentBuilder constructeur = fabrique.newDocumentBuilder(); // lecture du contenu d'un fichier XML avec DOM File xml = new File("C:/book.xml"); Document document = constructeur.parse(xml); //traitement du document //voir ExempleDOM.zip }catch(ParserConfigurationException pce){ System.out.println("Erreur de configuration du parseur DOM"); System.out.println("lors de l'appel à fabrique.newDocumentBuilder();"); }catch(SAXException se){ System.out.println("Erreur lors du parsing du document"); System.out.println("lors de l'appel à construteur.parse(xml)"); }catch(IOException ioe){ System.out.println("Erreur d'entrée/sortie"); System.out.println("lors de l'appel à construteur.parse(xml)"); } } }
java.lang.ClassCastException
at JDOM1.main(JDOM1.java:24)
Exception in thread "main"
voilà
le probleme est affiché sur l anglai probleme de Eclipse :
Type mismatch: cannot convert from Document to Document JDOM1.java LectureDeFichierXML line 24
voilà donc
pour le "faw" c'est une erreur.lit plutot "faq".
sinon essaye de caster :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Document document = (Document)constructeur.parse(xml);
non walou ça donne rien du tout !
l erreur qu il affiche si je caste c'est :
java.lang.ClassCastException
at ServiceQuery.main(ServiceQuery.java:27)
Exception in thread "main"
mais si je remplace Document par : XMLDocument : càd
XmlDocument document = (XmlDocument) constructeur.parse(xml);
mais c'est quoi la difference entre les deux ??
Voilà mon fichier xml :
lorsque je fais:
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 <?xml version="1.0" encoding="UTF-8"?> <Queries> <Query Subject="Java 1.5" > <Body>select * from 1 ........</Body> </Query> <Query Subject="Java Architect" > <Body>select * from 2 .........</Body> </Query> <Query Subject="Java Architect" > <Body>select * from 3 .........</Body> </Query> </Queries>
il m affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println("le corps du la tag :"+ document.getElementsByTagName("Body").item(2));
>> ma question comment faire pour afficher just le contenu du la tag sans inclure les tag <Body> ...</Body> ces tag c'est moi qui les defini ds le fichier xml (par hasard j les nommé body ils ne sont pas des mots clé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2le corps du la tag :<Body>select * from 3 .........</Body>
)
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementsByTagName("Body").item(2).getNodeValue();
non ça donne null à l affichage
n tout cas c'est avec
que tu recupere le contenu d'un noeud.
Code : Sélectionner tout - Visualiser dans une fenêtre à part getNodeValue();
Tu as mélangé un document JDOM et un document DOM...
Ton "constructeur" est prévu pour créer un org.w3c.dom.Document.
Si tu veux utiliser DOM, supprime les import de classes JDOM.
Partager