Salut
J'ai un fichier xml que je veux parcourir, jusque là, pas de problème, j'y arrive. Seul problème si j'ai un espace ou un retour à la ligne entre deux balises, ça ne fonctionne plus. Comment faire pour éviter cela ?
Merci d'avance
JuTs
Salut
J'ai un fichier xml que je veux parcourir, jusque là, pas de problème, j'y arrive. Seul problème si j'ai un espace ou un retour à la ligne entre deux balises, ça ne fonctionne plus. Comment faire pour éviter cela ?
Merci d'avance
JuTs
Dernière modification par Robin56 ; 10/06/2012 à 22h58. Motif: Ajout du préfixe
Salut
Est-ce que quelqu'un peut répondre à ma question ? Que dois-je faire pour pouvoir ouvrir des fichiers ayant des espaces/retour à la ligne entre les balises ?
Comment lit-tu ton fichier xml ? Donne nous plus d'info sur ce que tu fait pour parser ton fichier, montre nous un peu de ton code.
As-tu lus la faq : 4.2. Le format XML
Je ne répondrai à aucune question technique par MP.
Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
Enfin, quand une solution a été trouvée à votre problème pensez au tag :resolu:
Cours Dvp : http://ydisanto.developpez.com
Blog : http://yann-disanto.blogspot.com/
Page perso : http://yann-disanto.fr
J'ai écrit mon code d'après cet exemple : http://java.developpez.com/sources/?...l#creationDOM2
exemple de mon fichier xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //... dbf = DocumentBuilderFactory.newInstance(); db = dbf.newDocumentBuilder(); document = db.newDocument(); File xml = new File(file); //file : nom de mon fichier document = db.parse(xml); // pour atteindre la balise <place> (voir ex. fichier xml plus bas) Node N = data.getDocument().getFirstChild().getFirstChild().getFirstChild(); //...
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 <?xml version="1.0" encoding="ISO-8859-1"?> <JACroa> <croa> <place> <name>test</name> <lat unit="Nord">0°0'0"</lat> <lon unit="Est">1°2'3"</lon> <alt>500</alt> </place> <dateTime> <date>24/01/2006</date> <localTimeBegin>10:21:15</localTimeBegin> <localTimeEnd>10:21:17</localTimeEnd> <timeZone>-1</timeZone> <dst>no</dst> </dateTime> <instrument> <instrument> <name>Vixen R150S</name> <diameter>150</diameter> <focal>750</focal> </instrument> <eyePiece> <name>Vixen AVW</name> <formula>AVW (Lanthanum)</formula> <focal>5</focal> <field>45</field> </eyePiece> <barlow> <used>no</used> <ratio>1</ratio> </barlow> <filter>aucun</filter> </instrument> </croa> </JACroa>
quand je fais un getFirstChild() c'est le retour à la ligne qui est retourné, et non la balise.
if faut vérifié que ton objet est valide.
Pour sinplifié crée toi une méthode privé qui fait getFistChild d'un Node.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for (int i = 0; i < list.getLength() || hasMore; i++) { Node node = list.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { //TODO ton action } }
Ca a l'air de fonctionner. Il faut que je fasse quelques modifs dans mon code et ça sera ok.
une question, d'où vient le hasMore dans ton for ?
oups problème de nétoyage de code c'est un boolean que j'utilise pour savoir si il y aplusd'un seul fils.
Et levé une erreur lors de controle spécifique de mon appli.
Dans ton cas aucun intérèt supprime simplement le hasmore
c'est tout bon, merci
Partager