diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000..b74365b
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1,23 @@
+
+## TÃtulo
+Actividad 11 - Guardando varios objetos en un archivo .xml
+
+## Uso
+Leyendo clase que extienden de Serializable para despues escribir los datos a un fichero xml creando un DOM.
+
+## Resultado
+```
+
+
+
+
+
+
+```
+## Dependencias
+- java.io.*
+- org.w3c.dom.*
+- javax.xml.*
+
+## Licencia
+Uso libre
diff --git a/people.xml b/people.xml
new file mode 100644
index 0000000..2d2683c
--- /dev/null
+++ b/people.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/person.bin b/person.bin
index bc6467e..6704fd4 100644
Binary files a/person.bin and b/person.bin differ
diff --git a/src/Main.java b/src/Main.java
index dd371a2..57b2179 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -1,10 +1,11 @@
-
+import controller.CreateXml;
import controller.ObjReader;
import controller.ObjWriter;
import model.People;
import model.Person;
import java.io.File;
+import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
@@ -12,21 +13,22 @@ public class Main {
//Create list
People data = new People();
+
//Init list
data.add(new Person("Manolo", 32));
data.add(new Person("Jorge", 2));
data.add(new Person("Pepe", 89));
- //Check writing
- boolean isWritten = ObjWriter.write(data,file);
-
- //Test serialization
- People p;
- if (isWritten) {
- p = (People) ObjReader.read(file);
- System.out.println(p.toString());
- }
+ //Write data
+ ObjWriter.write(data,file);
+ //Read data
+ People p = (People) ObjReader.read(file);
+ System.out.println(p.toString());
+ ArrayList peopleList = p.getData();
+ //Create xml from data
+ CreateXml c = new CreateXml();
+ c.create(peopleList, new File("people.xml"));
}
}
diff --git a/src/controller/CreateXml.java b/src/controller/CreateXml.java
new file mode 100644
index 0000000..3ff1196
--- /dev/null
+++ b/src/controller/CreateXml.java
@@ -0,0 +1,55 @@
+package controller;
+
+import model.Person;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import java.io.*;
+import java.util.ArrayList;
+
+public class CreateXml {
+
+ public void create(ArrayList data, File fileOut){
+ try {
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+
+ //root elements
+ Document doc = docBuilder.newDocument();
+
+ Element rootElement = doc.createElement("people");
+ doc.appendChild(rootElement);
+
+ for (Person p : data) {
+ Element person = doc.createElement("person");
+ rootElement.appendChild(person);
+
+ //set attribute to element
+ person.setAttribute("id", p.getId());
+ person.setAttribute("name", p.getName());
+ person.setAttribute("age", p.getAge());
+ }
+
+ //write the content into xml file
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ Transformer transformer = transformerFactory.newTransformer();
+ DOMSource source = new DOMSource(doc);
+
+ StreamResult result = new StreamResult(fileOut);
+ transformer.transform(source, result);
+
+ System.out.println("Done!");
+
+ }catch(ParserConfigurationException | TransformerException pce){
+ pce.printStackTrace();
+ }
+ }
+}
diff --git a/src/model/Person.java b/src/model/Person.java
index 0829ae4..77d7d53 100644
--- a/src/model/Person.java
+++ b/src/model/Person.java
@@ -9,25 +9,19 @@ public class Person implements Serializable {
private int age;
public Person(String name, int age) {
- id = ++CONT;
+ id = ++CONT ;
this.name = name;
this.age = age;
}
+ public String getId() {
+ return ""+id;
+ }
public String getName() {
return name;
}
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
+ public String getAge() {
+ return ""+age;
}
@Override