| @ -0,0 +1,10 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <classpath> | |||||
| <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre"> | |||||
| <attributes> | |||||
| <attribute name="module" value="true"/> | |||||
| </attributes> | |||||
| </classpathentry> | |||||
| <classpathentry kind="src" path="src"/> | |||||
| <classpathentry kind="output" path="out/production/Ejercicio_10"/> | |||||
| </classpath> | |||||
| @ -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 | |||||
| @ -0,0 +1,6 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="ProjectRootManager" version="2" languageLevel="JDK_18" default="true" project-jdk-name="corretto-18" project-jdk-type="JavaSDK"> | |||||
| <output url="file://$PROJECT_DIR$/out" /> | |||||
| </component> | |||||
| </project> | |||||
| @ -0,0 +1,8 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <project version="4"> | |||||
| <component name="ProjectModuleManager"> | |||||
| <modules> | |||||
| <module fileurl="file://$PROJECT_DIR$/Ejercicio_10.iml" filepath="$PROJECT_DIR$/Ejercicio_10.iml" /> | |||||
| </modules> | |||||
| </component> | |||||
| </project> | |||||
| @ -0,0 +1,17 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <projectDescription> | |||||
| <name>Ejercicio_10</name> | |||||
| <comment></comment> | |||||
| <projects> | |||||
| </projects> | |||||
| <buildSpec> | |||||
| <buildCommand> | |||||
| <name>org.eclipse.jdt.core.javabuilder</name> | |||||
| <arguments> | |||||
| </arguments> | |||||
| </buildCommand> | |||||
| </buildSpec> | |||||
| <natures> | |||||
| <nature>org.eclipse.jdt.core.javanature</nature> | |||||
| </natures> | |||||
| </projectDescription> | |||||
| @ -0,0 +1,11 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <module type="JAVA_MODULE" version="4"> | |||||
| <component name="NewModuleRootManager" inherit-compiler-output="true"> | |||||
| <exclude-output /> | |||||
| <content url="file://$MODULE_DIR$"> | |||||
| <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> | |||||
| </content> | |||||
| <orderEntry type="inheritedJdk" /> | |||||
| <orderEntry type="sourceFolder" forTests="false" /> | |||||
| </component> | |||||
| </module> | |||||
| @ -0,0 +1,11 @@ | |||||
| <h2>Parsear el xml a nuestro objeto persona e imprimirlo por pantalla</h2> | |||||
| <p>Utilizamos 2 clases para el ejercicio una clase para pasearlo utilizando la direccion del fichero que nos provee desde el main</p> | |||||
| <p>Terminamos el ejercicio comprobando que el parseo se ha completado correctamente</p> | |||||
| ```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} | |||||
| ] | |||||
| ``` | |||||
| @ -0,0 +1,18 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <empleados> | |||||
| <empleado id="1"> | |||||
| <apellido>Martinez</apellido> | |||||
| <dep>10</dep> | |||||
| <salario>1000.33</salario> | |||||
| </empleado> | |||||
| <empleado id="2"> | |||||
| <apellido>Garcia</apellido> | |||||
| <dep>11</dep> | |||||
| <salario>2000.34</salario> | |||||
| </empleado> | |||||
| <empleado id="3"> | |||||
| <apellido>Navarro</apellido> | |||||
| <dep>10</dep> | |||||
| <salario>2222.33</salario> | |||||
| </empleado> | |||||
| </empleados> | |||||
| @ -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<Empleado> empleados = parser.getEmpleado(); | |||||
| System.out.println(empleados); | |||||
| } | |||||
| }catch (IOException e){ | |||||
| e.printStackTrace(); | |||||
| } | |||||
| } | |||||
| } | |||||
| @ -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"; | |||||
| } | |||||
| } | |||||
| @ -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<Empleado> 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<Empleado> getEmpleado() { | |||||
| return empleados; | |||||
| } | |||||
| } | |||||
| @ -0,0 +1,18 @@ | |||||
| <?xml version="1.0" encoding="UTF-8"?> | |||||
| <empleados> | |||||
| <empleado id="1"> | |||||
| <apellido>Martinez</apellido> | |||||
| <dep>10</dep> | |||||
| <salario>1000.33</salario> | |||||
| </empleado> | |||||
| <empleado id="2"> | |||||
| <apellido>Garcia</apellido> | |||||
| <dep>11</dep> | |||||
| <salario>2000.34</salario> | |||||
| </empleado> | |||||
| <empleado id="3"> | |||||
| <apellido>Navarro</apellido> | |||||
| <dep>10</dep> | |||||
| <salario>2222.33</salario> | |||||
| </empleado> | |||||
| </empleados> | |||||