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