ajouter à la fin d'un fichier xml crée par jdom via un formulaire
bonsoir a tous,
j'ai utilisé Jdom avec javaFX sur netbeans pour créer un fichier XML dans lequel j'enregistre les données via mon interface (un ensemble de JLabel et de Jtextfield) . en fait en appuyant sur le bouton Enregistrer de mon interface le contenu des JLabel et des Jtextfield sera enregistrer dans le fichier xml.
mais j'ai un probleme , lorsque je ferme l'interface et et je l'execute une autre fois , il se produit un ecrasement des données precedentes.
s'il vous plait aidez moi c'est urgent.
voila mon 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import org.jdom2.DocType;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.w3c.dom.DOMImplementation;
public class HBoxSample extends Application {
static void affiche()
{
try
{
XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
sortie.output(document, System.out);
}
catch (java.io.IOException e){}
}
static void enregistre(String fichier)
{
try
{
XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
sortie.output(document, new FileOutputStream(fichier));
}
catch (java.io.IOException e){}
}
static Element racine = new Element("personnes");
static org.jdom2.Document document = new Document(racine);
private void init(Stage primaryStage) {
final Group root = new Group();
primaryStage.setResizable(false);
primaryStage.setScene(new Scene(root, 800,100));
final Label label = new Label("nom:");
final TextField tb = new TextField();
final Button button = new Button("enregistrer");
final Label label2 = new Label("prenom:");
final TextField tb1 = new TextField();
final Label label4=new Label("Tel:");
final TextField tb2=new TextField();
final Label label3 = new Label();
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent e) {
Element etudiant = new Element("etudiant");
racine.addContent(etudiant);
Element nom = new Element("nom");
nom.setText(tb.getText());
etudiant.addContent(nom);
Element Prenom = new Element("prenom");
Prenom.setText(tb1.getText());
etudiant.addContent(Prenom);
Element Tel = new Element("tel");
Tel.setText(tb2.getText());
etudiant.addContent(Tel);
}
});
HBox hbox = new HBox(5);
hbox.getChildren().addAll(label, tb);
hbox.getChildren().addAll(label2, tb1);
hbox.getChildren().addAll(label4, tb2, button);
hbox.setAlignment(Pos.CENTER_LEFT);
root.getChildren().add(hbox);
}
public double getSampleWidth() { return 800; }
public double getSampleHeight() { return 100; }
@Override public void start(Stage primaryStage) throws Exception {
init(primaryStage);
primaryStage.show();
}
public static void main(String[] args) {
launch();
affiche();
enregistre("Exercice1.xml");
}
} |