From 9b41cc80e47f118e25afb95879c84e5b61deaebe Mon Sep 17 00:00:00 2001 From: michaelpaliz Date: Mon, 21 Nov 2022 11:52:22 +0100 Subject: [PATCH] Anyado el proyecto creado con las clases creadas. --- .classpath | 10 ++++ .idea/.gitignore | 8 +++ .idea/misc.xml | 6 ++ .idea/modules.xml | 8 +++ .project | 17 ++++++ Ejercicio_10.iml | 11 ++++ README.md | 11 ++++ out/production/Ejercicio_10/Main.class | Bin 0 -> 1206 bytes .../Ejercicio_10/Modelo/Empleado.class | Bin 0 -> 1095 bytes out/production/Ejercicio_10/Parser.class | Bin 0 -> 2813 bytes out/production/Ejercicio_10/empleado.xml | 18 ++++++ src/Main.java | 24 ++++++++ src/Modelo/Empleado.java | 25 ++++++++ src/Parser.java | 55 ++++++++++++++++++ src/empleado.xml | 18 ++++++ 15 files changed, 211 insertions(+) create mode 100644 .classpath create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .project create mode 100644 Ejercicio_10.iml create mode 100644 README.md create mode 100644 out/production/Ejercicio_10/Main.class create mode 100644 out/production/Ejercicio_10/Modelo/Empleado.class create mode 100644 out/production/Ejercicio_10/Parser.class create mode 100644 out/production/Ejercicio_10/empleado.xml create mode 100644 src/Main.java create mode 100644 src/Modelo/Empleado.java create mode 100644 src/Parser.java create mode 100644 src/empleado.xml 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 0000000000000000000000000000000000000000..33df0bc8cf2939f660cc831c026d10e7cf8d2466 GIT binary patch literal 1206 zcmZux=}r?-7(EvX17#2>vbdlEiY-eA6cjAt!lGyk#3Ba$VTR!fgEO6GdTZcOd;)*t z4@e~O0ek`9#(3_u6)gLmhHZ5c;BnoTsIQJ^jB7UW9V-;&|Fz2!-PL^g12Z^I5< zy{{g|)UI2ix2)#M(2vhqpgZ{?d&-$tp77 zc5Ufd3xQMiWkHp!d{G;&g@M*wvKIGb=(vs>e4H4!N}*#(zvxMOJ4o;QUL5V{(&D=X zx{?>O_fqMa9hPLMZ(lWW4c7%4RPgrAGP9ISRm=)fSv<+;OEm32!h(~ME1 z4UCFlpevKxZxSXJ8XkcpzZtL@SS# zJD0jjvqaHMDjEW@Cl&xfqXU(-@(_wqX;50=7f^??|I3tdx-RC>^pjhkP!TE>?R!o)5~QBehn_(v6?inMFTX3BEs|jw`+*js|xYXTiB) z_!v!x5gg~JVLi5RG%FW4w{q8vOK9VXHvUaVG0t-*Xx~gEj&V7Af}Tyi8#%(2WAq*4 zR&MkNgYWe46+N8pu6)PH*byeaF@wDJ@G$Z}g=u~< zkUG-e>Q!5J4y!M^M`q6#NLq&J_||KyM@gQ5XbDLAz_e}4a0S%%pOORLvz)`4fMS>f z-ShQ6RZ>p;Shsc0B2P30VtbZj`3-?mu{B#f8)=q00?~b9D`O5R1qzk~=8C0G0s_kl z<`H9WML`@AdszjE&|6a=V}XWkTaNjB*zcO&OTBBG%-ikhc86&3eG-iNZ>(d1rS_@a z&`2@I?RPyYlzcawQy^U|&C-qIA~86h{M|pRt;^WLRUWTE!xU$c zOC8QADbR3@2Hb+wZ;_PB`M*_AFG#o}AeZwKF$Ck@W4QYa*E|bukCY>G`-XxG$P>(gJM?;H)8em8 zPWQRZTc<2i2MIk2m8C(R%EAaN$s({M3bGN(RFI_e9Nj+9eV%MiJHev1K7y*1M@Vax z5i(jfI>PGbpeDyT0d9hN$RxD|s#mZ~NNeP+)BA3Sgbkdh8|O0<5qO)#Arg4ZhMDGA zq=Y4SxCxt&^uqb=Z`gXJUOK@Q?F-Z~ifVa`ZSvD(QiU;YsJmex^E+@m46KfEH}#$~ vY7`iw{)zA+)D76AjqqL)#5#pE?Q8`*$e@8No>H7=P{RI`83Y~#)enCGU0UWW literal 0 HcmV?d00001 diff --git a/out/production/Ejercicio_10/Parser.class b/out/production/Ejercicio_10/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..6429c59371323a1714082b20370fcdc46577abca GIT binary patch literal 2813 zcma)7TW}Lq82(P0cGG0rLTQ0;zmpVb6ewa_Dy1|MOk1F}2r9TumULmW8#fzh@veyX z`vts@<1oDVprc$OGw8FgKKSH|4~{eP;P~h`;&(Pl=>?VPYF=rcRTZPQxC#wiENjMcUUKuXop!2_)h%~N!7$Uh6W3C%?To8fjuphR^b-k-fL4mg z>myMw>RSQmke9Afu^MX_0AZ%xBe42b&H*xzLRQ!(4|k~O#5Q`wTg#yN9pgh1kr^?$-5mYs!fJ~xxQFdHIcf=^q7VI~6T^|)q46A}An^wk>=9VtHHsI^zJlc%S$(2kf*3$! z0D}TPBP}y?uZm&p7f=b+?K1R{f=jGQt*2(>25vb?K^(yS3J$V?Z|D-1t7mja#RGVd zb@13jnGCbkjR0$ zMoKfT@*w=@9FtE-x;z_s?c6DiUYP`P>N>V9xiUpx83Y_gmTb1^=PPZ+^TOblAdbbx z@Mis_Atmi-qv(~1(>SwQ>;;mEBcG$ea%G0%{0P-N$#x>eM62^M+o$EqFNy5R%0oy8 zDx94tIgeCkb!7^C+83ds<^Y!u&5+ z3-~c5ScpaZC8n>3x7SnmM^)!#Ebd!>5i9#Qw0w=Gi&)$45BrPQAW+06f%3Y&I$Yhj zwTN~f+G|>_pzFXTY`=i+sx8WSoC()7D@F8B7YGN6kk$MIp(_}m)!uKzf$y-ny*6Ci zxUYyIA1>p*EkW)Md2m(U!6F_KXb(}Eo*`8!Ju+Q-8KYb4=yCTISO=Pe;ZRteS9b}y zBJw`$Kc$FfC0tX)xWK2^Q~u8L2*@ZOTlhIM;KQ%@jg45vTmgr?tj(u%0qe4mHCV(< zE@s7+pao0OhGp2!T^uX07b`g>S0RlxIEJ+t=j;3$qBuv(t9*Tbq}?yrK>Su*Lkz$3 z@su?=iw2qPa!q`cKaFSTNezC+DLl)&L-+}&@f>|>#t(QNFR-Q(^F_QwzO>;hyo^_9 z--FNaD(_V2%W1rhHxQsFCf=l7E&Vx!L285icHuDIBJMeC#M@k{L<=K>cgU}6M1L1& zc<)*I)rRWp3@@NS2n9 + + + 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 + +