Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con JDom y xml

Estas en el tema de Ayuda con JDom y xml en el foro de Java en Foros del Web. Hola gente... Les cuento, quiero hacer un programa que simplemente pida nombre, apellido y rut y los guarde en un archivo XML, y a la ...
  #1 (permalink)  
Antiguo 16/10/2009, 20:31
Avatar de almaesdi  
Fecha de Ingreso: enero-2005
Mensajes: 70
Antigüedad: 19 años, 3 meses
Puntos: 0
Ayuda con JDom y xml

Hola gente...
Les cuento, quiero hacer un programa que simplemente pida nombre, apellido y rut y los guarde en un archivo XML, y a la vez, al abir nuevamente el programa cargar los datos(Esto podrian ignorarlo, porque primero quiero aprender a guardar bien los datos)....Para ello implemente un arreglo dinamico(no influye, asique ignorenlo si quieren), pero para ir probando solamente quiero guardar 3 espacios (si logro guardar 3, despues podre guadar mas xD)... Por ahora solo puedo guadar solamente 1 espacio(con nombre, apellido, rut) no sé como poder guadar 3...les pongo los codigos...


Cita:
public class empleado {

private String nombre;
private String apellido;
private String rut;

public empleado(String nombre, String apellido, String rut){
this.nombre=nombre;
this.apellido=apellido;
this.rut=rut;
}

public String getNombre(){
return nombre;
}
public String getRut(){
return apellido;
}
public String getEdad(){
return rut;
}

}
El main:
Cita:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;

import org.jdom.Document;


public class main {

static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {

String nombre,apellido,rut;

empleado persona;
ArrayList <empleado> obj_empleado = new ArrayList <empleado>();

//llenar
for(int i=0;i<3;i++){
System.out.println("Nombre");
nombre=sc.nextLine();
System.out.println("Apellido");
apellido=sc.nextLine();
System.out.println("rut");
rut=sc.nextLine();
persona=new empleado(nombre,apellido,rut);
obj_empleado.add(persona);

Document output= guardarXML.genXML(rut, nombre, apellido);
try {
guardarXML.dumpXML(output, "simple2.xml");
} catch (IOException e) {
e.printStackTrace();
}

}

}

}
Y por ultimo la clase q genera el XML:

Cita:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;


public class guardarXML {

// Genera un documento XML
public static Document genXML(String rut, String nombre, String apellido) {

Document doc = new Document();
Element root = new Element("Empleados");

Attribute rutAtrib = new Attribute("rut", rut);
root.setAttribute(rutAtrib);

Element nombreElem = new Element("nombre");
nombreElem.setText(nombre);
root.addContent(nombreElem);

Element apellidoElem = new Element("correo");
apellidoElem.setText(apellido);
root.addContent(apellidoElem);

// Todo documento tiene un nodo raíz
doc.setRootElement(root);

return doc;
}

// Vuelca a fichero el documento
public static void dumpXML(Document doc, String filePath) throws IOException {

XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
FileWriter writer = new FileWriter(new File(filePath));
outputter.output(doc, writer);
}


}
Sé cual es mi error, pero no sé como arreglarlo...
Porque en el main, cuando hago el for, cada vez q pido nombre, apellido y rut, los capto y despues guardo el documento, y cuando pido al sigueinte usuario, vuelvo a guadar el documento y se sobrescribe, pero no sabria como hacer que capte los 3 nombres, apellidos y ruts y los mande a 1 solo archivo...o crear un metodo que AGREGE al final del ultimo en un mismo archivo... :S

Gracias de antemano
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:18.