Aniadido exportar xml

This commit is contained in:
roche
2019-11-16 21:05:09 +01:00
parent 8bfab6a9dc
commit 1e46c48068
8 changed files with 243 additions and 83 deletions

View File

@@ -1,6 +1,7 @@
package Logica;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -12,6 +13,24 @@ import java.time.Month;
import java.util.ArrayList;
import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.DOMImplementation;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Text;
public class Meses {
private ArrayList<Mes> meses;
private int mesActual=0;
@@ -124,6 +143,96 @@ public class Meses {
return ret;
}
public void exportarXML() {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
File fichero = new File("gestiones.xml");
try {
builder = factory.newDocumentBuilder();
DOMImplementation dom = builder.getDOMImplementation();
Document documento = dom.createDocument(null, "xml", null);
Element raiz = documento.createElement("raiz");
documento.getDocumentElement().appendChild(raiz);
Element nodoMeses;
Element nodoGestion;
Element nodoTransaccion;
Element nodoDatos;
Text dato;
for(Mes mes:this.meses) {
nodoMeses = documento.createElement("mes");
raiz.appendChild(nodoMeses);
nodoDatos = documento.createElement("nombre");
nodoMeses.appendChild(nodoDatos);
dato = documento.createTextNode(mes.getMes().toString());
nodoDatos.appendChild(dato);
nodoDatos = documento.createElement("anio");
nodoMeses.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(mes.getAnio()));
nodoDatos.appendChild(dato);
nodoDatos = documento.createElement("dineroRestante");
nodoMeses.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(mes.getTotal()));
nodoDatos.appendChild(dato);
nodoDatos = documento.createElement("numeroGestiones");
nodoMeses.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(mes.nGestiones));
nodoDatos.appendChild(dato);
for(Gestion gestion:mes.gestiones) {
nodoGestion = documento.createElement("gestion");
nodoMeses.appendChild(nodoGestion);
nodoDatos = documento.createElement("Nombre");
nodoGestion.appendChild(nodoDatos);
dato = documento.createTextNode(gestion.getNombre());
nodoDatos.appendChild(dato);
nodoDatos = documento.createElement("Dinero");
nodoGestion.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(gestion.getSuma()));
nodoDatos.appendChild(dato);
nodoDatos = documento.createElement("EsPositivo");
nodoGestion.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(gestion.esIngreso()));
nodoDatos.appendChild(dato);
for(Transaccion transaccion:gestion.getElementos()) {
nodoTransaccion = documento.createElement("transaccion");
nodoGestion.appendChild(nodoTransaccion);
nodoDatos = documento.createElement("Nombre");
nodoTransaccion.appendChild(nodoDatos);
dato = documento.createTextNode(transaccion.getNombre());
nodoTransaccion.appendChild(dato);
nodoDatos = documento.createElement("Fecha");
nodoTransaccion.appendChild(nodoDatos);
dato = documento.createTextNode(transaccion.getDia().toString());
nodoTransaccion.appendChild(dato);
nodoDatos = documento.createElement("Dinero");
nodoTransaccion.appendChild(nodoDatos);
dato = documento.createTextNode(String.valueOf(transaccion.getDinero()));
nodoTransaccion.appendChild(dato);
}
}
}
Source src = new DOMSource(documento);
Result result = new StreamResult(fichero);
Transformer transformer = null;
transformer = TransformerFactory.newInstance().newTransformer();
transformer.transform(src, result);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Mes implements Serializable{