commit d80a19f7634fad5237c5bbf1293d61326733fbdb Author: Jesus Date: Sat Oct 22 19:17:52 2022 +0200 Project finished diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f68d109 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +### IntelliJ IDEA ### +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file 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..3d3ab27 --- /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..f2046ab --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..05bfb44 --- /dev/null +++ b/Readme.md @@ -0,0 +1,27 @@ + +## Título +Actividad 10 - Leer archivo .xml por pantalla + +## Uso +Creacion clase EmpleadoParser encargada de leer el archivo e imprimirlo por pantalla +``` +idEmpleado: 1 +Apellido: Martinez +Departamento: 10 +Salario: 1000.33 + +idEmpleado: 2 +Apellido: Garcia +Departamento: 11 +Salario: 2000.34 + +idEmpleado: 3 +Apellido: Navarro +Departamento: 10 +Salario: 2222.33 +``` +## Dependencias +- java.io.* + +## Licencia +Uso libre diff --git a/com.jesuspinar.readXml.iml b/com.jesuspinar.readXml.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/com.jesuspinar.readXml.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/empleados.xml b/empleados.xml new file mode 100644 index 0000000..47736b9 --- /dev/null +++ b/empleados.xml @@ -0,0 +1,18 @@ + + + + Martinez + 10 + 1000.33 + + + Garcia + 11 + 2000.34 + + + Navarro + 10 + 2222.33 + + diff --git a/src/EmpleadoParser.java b/src/EmpleadoParser.java new file mode 100644 index 0000000..8632a2a --- /dev/null +++ b/src/EmpleadoParser.java @@ -0,0 +1,47 @@ +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import java.io.*; + +public class EmpleadoParser { + private final InputStream empleadosFile; + + public EmpleadoParser(File location) throws IOException { + empleadosFile = new FileInputStream(location); + } + + public boolean parse() { + boolean parsed = false; + + try { + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder builder = factory.newDocumentBuilder(); + //Checks if the XML is valid + Document dom = builder.parse(empleadosFile); + //Increases cpu usage + Element root = dom.getDocumentElement(); + NodeList items = root.getElementsByTagName("empleado"); + + for(int i = 0; i < items.getLength(); i++) { + Node node = items.item(i); + if(node.getNodeType() != Node.ELEMENT_NODE) { + throw new RuntimeException("Error in XML document, check xml syntax"); + } + Element element = (Element) node; + System.out.printf("idEmpleado: %s \n",element.getAttribute("id")); + System.out.printf("Apellido: %s\n",element.getElementsByTagName("apellido").item(0).getTextContent()); + System.out.printf("Departamento: %s\n",element.getElementsByTagName("dep").item(0).getTextContent()); + System.out.printf("Salario: %s\n\n",element.getElementsByTagName("salario").item(0).getTextContent()); + } + parsed = true; + + } catch (Exception e) { + e.printStackTrace(); + } + return parsed; + } +} diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..18142ef --- /dev/null +++ b/src/Main.java @@ -0,0 +1,14 @@ +import java.io.File; +import java.io.IOException; + +public class Main { + public static void main(String[] args) { + try { + EmpleadoParser empleadoParser = new EmpleadoParser(new File("empleados.xml")); + empleadoParser.parse(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } +}