commit 9b41cc80e47f118e25afb95879c84e5b61deaebe Author: michaelpaliz Date: Mon Nov 21 11:52:22 2022 +0100 Anyado el proyecto creado con las clases creadas. diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..b9e8022 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..edb05c4 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..da34222 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..69453f2 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + Ejercicio_10 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Ejercicio_10.iml b/Ejercicio_10.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Ejercicio_10.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..ba8910c --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +

Parsear el xml a nuestro objeto persona e imprimirlo por pantalla

+

Utilizamos 2 clases para el ejercicio una clase para pasearlo utilizando la direccion del fichero que nos provee desde el main

+

Terminamos el ejercicio comprobando que el parseo se ha completado correctamente

+ +```java +[Empleado{identificador=1, apellido='Martinez', departamento='10', salario=1000.33} +, Empleado{identificador=2, apellido='Garcia', departamento='11', salario=2000.34} +, Empleado{identificador=3, apellido='Navarro', departamento='10', salario=2222.33} +] + +``` diff --git a/out/production/Ejercicio_10/Main.class b/out/production/Ejercicio_10/Main.class new file mode 100644 index 0000000..33df0bc Binary files /dev/null and b/out/production/Ejercicio_10/Main.class differ diff --git a/out/production/Ejercicio_10/Modelo/Empleado.class b/out/production/Ejercicio_10/Modelo/Empleado.class new file mode 100644 index 0000000..fac634c Binary files /dev/null and b/out/production/Ejercicio_10/Modelo/Empleado.class differ diff --git a/out/production/Ejercicio_10/Parser.class b/out/production/Ejercicio_10/Parser.class new file mode 100644 index 0000000..6429c59 Binary files /dev/null and b/out/production/Ejercicio_10/Parser.class differ diff --git a/out/production/Ejercicio_10/empleado.xml b/out/production/Ejercicio_10/empleado.xml new file mode 100644 index 0000000..a24e0e9 --- /dev/null +++ b/out/production/Ejercicio_10/empleado.xml @@ -0,0 +1,18 @@ + + + + Martinez + 10 + 1000.33 + + + Garcia + 11 + 2000.34 + + + Navarro + 10 + 2222.33 + + diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..63a371f --- /dev/null +++ b/src/Main.java @@ -0,0 +1,24 @@ +import Modelo.Empleado; +import java.io.File; +import java.io.IOException; +import java.util.List; + +public class Main { + + public static void main(String[] args) { + try{ + File fichero = new File("/home/michael/Documents/SpringProjects/Ejercicio_10/src/empleado.xml"); + Parser parser = new Parser(new File(fichero.toURI())); + parser.startParser(); + if (parser.startParser()){ + List empleados = parser.getEmpleado(); + System.out.println(empleados); + } + + }catch (IOException e){ + e.printStackTrace(); + } + + + } +} \ No newline at end of file diff --git a/src/Modelo/Empleado.java b/src/Modelo/Empleado.java new file mode 100644 index 0000000..1ff0199 --- /dev/null +++ b/src/Modelo/Empleado.java @@ -0,0 +1,25 @@ +package Modelo; + +public class Empleado { + private final int identificador; + private final String apellido; + private final String departamento; + private final float salario; + + public Empleado(int identificador, String nombre, String departamento, float salario) { + this.identificador = identificador; + this.apellido = nombre; + this.departamento = departamento; + this.salario = salario; + } + + @Override + public String toString() { + return "Empleado{" + + "identificador=" + identificador + + ", apellido='" + apellido + '\'' + + ", departamento='" + departamento + '\'' + + ", salario=" + salario + + '}' + "\n"; + } +} diff --git a/src/Parser.java b/src/Parser.java new file mode 100644 index 0000000..93cdc06 --- /dev/null +++ b/src/Parser.java @@ -0,0 +1,55 @@ +import Modelo.Empleado; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + + +import java.io.*; +import java.util.ArrayList; +import java.util.List; + +public class Parser { + private List empleados; + private final File empleadoFichero; + + public Parser(File file) throws IOException { + empleadoFichero = file; + } + + public boolean startParser(){ + boolean parseado = false; + try{ + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + Document documento = builder.parse(empleadoFichero); + documento.getDocumentElement().normalize(); + Element root = documento.getDocumentElement(); + NodeList nList = root.getElementsByTagName("empleado"); + empleados = new ArrayList<>(); + for (int i = 0; i < nList.getLength(); i++) { + Node node = nList.item(i); + if (node.getNodeType() != Node.ELEMENT_NODE){ + throw new RuntimeException(); + } + Element element = (Element) node; + int id = Integer.parseInt(element.getAttribute("id")); + String apellido = element.getElementsByTagName("apellido").item(0).getTextContent(); + String departamento = element.getElementsByTagName("dep").item(0).getTextContent(); + float salario = Float.parseFloat(element.getElementsByTagName("salario").item(0).getTextContent()); + empleados.add( new Empleado (id,apellido,departamento,salario)); + } + parseado = true; + }catch (Exception e){ + e.printStackTrace(); + } + return parseado; + } + + public List getEmpleado() { + return empleados; + } +} diff --git a/src/empleado.xml b/src/empleado.xml new file mode 100644 index 0000000..a24e0e9 --- /dev/null +++ b/src/empleado.xml @@ -0,0 +1,18 @@ + + + + Martinez + 10 + 1000.33 + + + Garcia + 11 + 2000.34 + + + Navarro + 10 + 2222.33 + +