Ik ben aan het proberen om een xml file te updaten via een klein formuliertje. De xml file ziet er zo uit:
Het inlezen van de file gaat perfect. Het aanpassen van een file gaat helemaal niet, ik krijg ook geen foutmelding. Ik maak gebruik van een klasse en wat methodes om deze functies uit te voeren:
Nu vraag ik me af wat ik verkeerd doe. Ik veronderstel dat de code die ik heb geschreven zou moeten werken.
Het is niet de bedoeling dat deze code tot in de puntjes wordt ontleed, ik ben tevreden als het werkt.
Iemand een idee?
Trouwens ik ben dit allemaal lokaal aan het proberen op mijn windows xp machine (resin als webserver), ik veronderstel dat de rechten juist staan.
code:
1
2
3
4
5
6
7
| <?xml version="1.0" encoding="UTF-8"?> <configuratie> <style veld="textfield">blauw</style> <titel veld="textfield">Buy n $ell</titel> <mail_admin veld="textfield">...</mail_admin> <voetnoot veld="textarea">...</voetnoot> </configuratie> |
Het inlezen van de file gaat perfect. Het aanpassen van een file gaat helemaal niet, ik krijg ook geen foutmelding. Ik maak gebruik van een klasse en wat methodes om deze functies uit te voeren:
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
96
97
98
| import java.awt.event.*;
import java.io.*;
import java.util.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;
public class Style {
private File file;
private Element configuratie;
private String style, titel, mail, voetnoot;
public Style(File f) {
this.file = f;
try
{
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build(file);
configuratie = doc.getRootElement();
style = (configuratie.getChild("style")).getText();
System.out.println(style);
titel = (configuratie.getChild("titel")).getText();
System.out.println(titel);
mail = (configuratie.getChild("mail_admin")).getText();
System.out.println(mail);
voetnoot = (configuratie.getChild("voetnoot")).getText();
System.out.println(voetnoot);
}
catch (JDOMException e)
{
e.printStackTrace();
}
}
public String getStyle() { return style; }
public String getTitel() { return titel; }
public String getMail() { return mail; }
public String getVoetnoot(){ return voetnoot; }
public void updateXML(File f, String style, String titel, String mail, String voetnoot){
this.file = f;
System.out.println(f);
try
{
SAXBuilder builder = new SAXBuilder(false);
Document doc = builder.build(file);
configuratie = doc.getRootElement();
///// ik heb eens geprobeerd om de elementen te verwijderen zonder resultaat
configuratie.removeChild("style");
configuratie.removeChild("titel");
configuratie.removeChild("mail_admin");
configuratie.removeChild("voetnoot");
///// hier probeer ik ze te updaten.
///// De elementen krijgen wel de waarde die ze moeten krijgen maar dit wordt percies niet weg geschreven in de xml file
configuratie.getChild("style").setText(style);
System.out.println(configuratie.getChild("style").getText());
configuratie.getChild("titel").setText(titel);
System.out.println(configuratie.getChild("titel").getText());
configuratie.getChild("mail_admin").setText(mail);
System.out.println(configuratie.getChild("mail_admin").getText());
configuratie.getChild("voetnoot").setText(voetnoot);
System.out.println(configuratie.getChild("voetnoot").getText());
}
catch (JDOMException e)
{
e.printStackTrace();
}
}
} |
Nu vraag ik me af wat ik verkeerd doe. Ik veronderstel dat de code die ik heb geschreven zou moeten werken.
Het is niet de bedoeling dat deze code tot in de puntjes wordt ontleed, ik ben tevreden als het werkt.
Iemand een idee?
Trouwens ik ben dit allemaal lokaal aan het proberen op mijn windows xp machine (resin als webserver), ik veronderstel dat de rechten juist staan.
[ Voor 6% gewijzigd door Verwijderd op 21-05-2004 20:53 ]