a dirti la verità ho risolto in maniera più semplice. Posto la soluzione per chi fosse interessato.
Io ricevo 2 stringhe, che sono il nome e il cognome che devo memorizzare. Il metodo creaPersona() mi crea il nuovo nodo persona e poi richiamo una funzione ricorsiva che scorre l'albero a partire dalla radice e crea la struttura xml, salvandola in una semplice stringa, che vado poi a stampare nel file.
codice:
DocumentBuilderFactory docfactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = docfactory.newDocumentBuilder();
Document d = builder.parse(application.getRealPath("/") + "rubrica.xml");
Element radice = documento.getDocumentElement();
public void creaPersona(Document d, String n, String c) {
s2 = "";
Element persona = d.createElement("persona");
Element nome = d.createElement("nome");
nome.appendChild(d.createTextNode(n));
persona.appendChild(nome);
Element cognome = d.createElement("cognome");
cognome.appendChild(d.createTextNode(c));
persona.appendChild(cognome);
radice.appendChild(persona);
runTree(radice); // funzione ricorsiva che tralascio per la sua semplicità
}
PrintStream f = new PrintStream(new FileOutputStream(application.getRealPath("/") + "rubrica.xml"));
f.print("<?xml version=\"1.0\"?>");
f.print(s2);