Browse Source

First Commit

master
Ivan Morell 2 years ago
commit
3c8ebf63ae
16 changed files with 285 additions and 0 deletions
  1. +10
    -0
      .classpath
  2. +17
    -0
      .project
  3. +2
    -0
      .settings/org.eclipse.core.resources.prefs
  4. +14
    -0
      .settings/org.eclipse.jdt.core.prefs
  5. BIN
      bin/Escribir/WriteXmlDom.class
  6. BIN
      bin/Leer/Empleados.class
  7. +18
    -0
      bin/Leer/Empleados.xml
  8. BIN
      bin/Leer/ParserEmpleados.class
  9. BIN
      bin/Main/Main.class
  10. BIN
      bin/module-info.class
  11. +66
    -0
      src/Escribir/WriteXmlDom.java
  12. +32
    -0
      src/Leer/Empleados.java
  13. +18
    -0
      src/Leer/Empleados.xml
  14. +68
    -0
      src/Leer/ParserEmpleados.java
  15. +30
    -0
      src/Main/Main.java
  16. +10
    -0
      src/module-info.java

+ 10
- 0
.classpath View File

@ -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/JavaSE-17">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>

+ 17
- 0
.project View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MyParser</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>

+ 2
- 0
.settings/org.eclipse.core.resources.prefs View File

@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8

+ 14
- 0
.settings/org.eclipse.jdt.core.prefs View File

@ -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

BIN
bin/Escribir/WriteXmlDom.class View File


BIN
bin/Leer/Empleados.class View File


+ 18
- 0
bin/Leer/Empleados.xml View File

@ -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>

BIN
bin/Leer/ParserEmpleados.class View File


BIN
bin/Main/Main.class View File


BIN
bin/module-info.class View File


+ 66
- 0
src/Escribir/WriteXmlDom.java View File

@ -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);
}
}

+ 32
- 0
src/Leer/Empleados.java View File

@ -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;
}
}

+ 18
- 0
src/Leer/Empleados.xml View File

@ -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>

+ 68
- 0
src/Leer/ParserEmpleados.java View File

@ -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;
}
}

+ 30
- 0
src/Main/Main.java View File

@ -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());
}*/
}
}

+ 10
- 0
src/module-info.java View File

@ -0,0 +1,10 @@
/**
*
*/
/**
* @author Ivan
*
*/
module MyParser {
requires java.xml;
}

Loading…
Cancel
Save