commit 3c8ebf63ae7278f9294d9aacb9dd688e16135b22 Author: Ivan Morell Date: Fri Oct 28 15:44:49 2022 +0200 First Commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..a27dde9 --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + MyParser + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/bin/Escribir/WriteXmlDom.class b/bin/Escribir/WriteXmlDom.class new file mode 100644 index 0000000..687f47a Binary files /dev/null and b/bin/Escribir/WriteXmlDom.class differ diff --git a/bin/Leer/Empleados.class b/bin/Leer/Empleados.class new file mode 100644 index 0000000..617a40c Binary files /dev/null and b/bin/Leer/Empleados.class differ diff --git a/bin/Leer/Empleados.xml b/bin/Leer/Empleados.xml new file mode 100644 index 0000000..5cca44f --- /dev/null +++ b/bin/Leer/Empleados.xml @@ -0,0 +1,18 @@ + + + + Martinez + 10 + 1000.33 + + + Garcia + 11 + 2000.34 + + + Navarro + 10 + 2222.33 + + \ No newline at end of file diff --git a/bin/Leer/ParserEmpleados.class b/bin/Leer/ParserEmpleados.class new file mode 100644 index 0000000..cc430a5 Binary files /dev/null and b/bin/Leer/ParserEmpleados.class differ diff --git a/bin/Main/Main.class b/bin/Main/Main.class new file mode 100644 index 0000000..8092380 Binary files /dev/null and b/bin/Main/Main.class differ diff --git a/bin/module-info.class b/bin/module-info.class new file mode 100644 index 0000000..6643e70 Binary files /dev/null and b/bin/module-info.class differ diff --git a/src/Escribir/WriteXmlDom.java b/src/Escribir/WriteXmlDom.java new file mode 100644 index 0000000..ce7c16d --- /dev/null +++ b/src/Escribir/WriteXmlDom.java @@ -0,0 +1,66 @@ +package Escribir; + + +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.*; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; + +public class WriteXmlDom { + + public void run() + throws ParserConfigurationException, TransformerException { + + DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); + + // root elements + Document doc = docBuilder.newDocument(); + Element rootElement = doc.createElement("empleado"); + doc.appendChild(rootElement); +/* + doc.createAttribute("id"); + rootElement.appendChild(doc.createAttribute("id")); + */ + doc.createElement("apellido"); + //rootElement.appendChild(doc.createElement("apellido")); + + + doc.createElement("dep"); + rootElement.appendChild(doc.createElement("dep")); + + doc.createElement("salario"); + rootElement.appendChild(doc.createElement("salario")); + //...create XML elements, and others... + + // write dom document to a file + try (FileOutputStream output = + new FileOutputStream("C:\\Users\\Ivan\\Documents\\Test\\EmpleadosDom.xml")) { + writeXml(doc, output); + } catch (IOException e) { + e.printStackTrace(); + } + + } + + // write doc to output stream + private static void writeXml(Document doc, OutputStream output) throws TransformerException { + + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(output); + + transformer.transform(source, result); + + } +} diff --git a/src/Leer/Empleados.java b/src/Leer/Empleados.java new file mode 100644 index 0000000..1378806 --- /dev/null +++ b/src/Leer/Empleados.java @@ -0,0 +1,32 @@ +package Leer; + +public class Empleados { + + private int id; + private String apellido; + private String dep; + private float salario; + + public Empleados(int id,String apellido,String dep,float salario) { + this.id = id; + this.apellido = apellido; + this.dep = dep; + this.salario = salario; + } + + public String getApellido() { + return apellido; + } + public String getDep() { + return dep; + } + public int getId() { + return id; + } + public float getSalario() { + return salario; + } + + + +} diff --git a/src/Leer/Empleados.xml b/src/Leer/Empleados.xml new file mode 100644 index 0000000..5cca44f --- /dev/null +++ b/src/Leer/Empleados.xml @@ -0,0 +1,18 @@ + + + + Martinez + 10 + 1000.33 + + + Garcia + 11 + 2000.34 + + + Navarro + 10 + 2222.33 + + \ No newline at end of file diff --git a/src/Leer/ParserEmpleados.java b/src/Leer/ParserEmpleados.java new file mode 100644 index 0000000..838de81 --- /dev/null +++ b/src/Leer/ParserEmpleados.java @@ -0,0 +1,68 @@ +package Leer; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +public class ParserEmpleados { + + private Empleados[] empleados; + private File file; + + public boolean parse() { + /** Parsed controla si se han podido parsear los datos. Inicialmente a false */ + boolean parsed = false; + /** Inicializamos a null el array de países */ + empleados = null; + try { + /** Obtenemos una referencia al DocumentBuilderFactory necesaria para parsear mediante DOM */ + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + /** Obtenemos una referencia al DocumentBuilder necesaria para parsear mediante DOM */ + DocumentBuilder builder = factory.newDocumentBuilder(); + /** Obtenemos una referencia al Document parseando mediante DOM */ + file = new File("src/Package/Empleados.xml"); + System.out.println(file.getAbsolutePath()); + Document dom = builder.parse(file); + /** Obtenemos el elemento raíz del documento */ + Element root = dom.getDocumentElement(); + NodeList items = root.getElementsByTagName("empleado"); + empleados = new Empleados[items.getLength()]; + /** Recorremos cada uno de los nodos */ + for (int i = 0; i < items.getLength(); i++) { + /** Obtenemos el nodo de la posición i */ + + Node item = items.item(i); + + Element el = (Element) item; + + int id = Integer.parseInt(el.getAttribute("id")); + String apellido = el.getElementsByTagName("apellido").item(0).getTextContent(); + String dep = el.getElementsByTagName("dep").item(0).getTextContent(); + float salario = Float.parseFloat(el.getElementsByTagName("salario").item(0).getTextContent()); + /** Con los datos obtenidos, creamos el objeto Country en la posición i del array */ + empleados[i] = new Empleados(id,apellido,dep,salario); + } + /** Si hemos llegado hasta aquí, podemos asegurar que el documento xml ha sido parseado correctamente */ + parsed = true; + } catch (ParserConfigurationException pce) { + System.out.println("PCE"); + } catch (Exception e) { + e.printStackTrace(); + } + return parsed; + } + + + public Empleados[] getCountries() { + return this.empleados; + } +} diff --git a/src/Main/Main.java b/src/Main/Main.java new file mode 100644 index 0000000..9b9cb60 --- /dev/null +++ b/src/Main/Main.java @@ -0,0 +1,30 @@ +package Main; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.TransformerException; + +import Escribir.WriteXmlDom; +import Leer.ParserEmpleados; + +public class Main { + + public static void main(String args[]) { + + WriteXmlDom dom = new WriteXmlDom(); + try { + dom.run(); + } catch (ParserConfigurationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (TransformerException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + /*ParserEmpleados parser = new ParserEmpleados(); + if(parser.parse()) { + System.out.println(parser.getCountries()[2].getApellido()); + }*/ + } + +} diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..aecca81 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,10 @@ +/** + * + */ +/** + * @author Ivan + * + */ +module MyParser { + requires java.xml; +} \ No newline at end of file