@ -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> |
@ -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> |
@ -0,0 +1,2 @@ | |||||
eclipse.preferences.version=1 | |||||
encoding/<project>=UTF-8 |
@ -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 |
@ -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,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); | |||||
} | |||||
} |
@ -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; | |||||
} | |||||
} |
@ -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,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; | |||||
} | |||||
} |
@ -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()); | |||||
}*/ | |||||
} | |||||
} |
@ -0,0 +1,10 @@ | |||||
/** | |||||
* | |||||
*/ | |||||
/** | |||||
* @author Ivan | |||||
* | |||||
*/ | |||||
module MyParser { | |||||
requires java.xml; | |||||
} |