commit 0350379e0ffce69aca51a8d5ee3193209fc62e2c Author: Isidoro Nevares Martín Date: Wed Oct 22 19:22:55 2025 +0200 primer commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..7d2db28 --- /dev/null +++ b/.classpath @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e618407 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/bin/ +*.class \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..64140db --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + aadd_act1_12 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..832915d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=24 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=24 +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.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=24 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/informacion-IES.xml b/informacion-IES.xml new file mode 100644 index 0000000..9e27bba --- /dev/null +++ b/informacion-IES.xml @@ -0,0 +1,119 @@ + + + + DAM + Técnico Superior en Desarrollo de Aplicaciones Multiplataforma + + + Bases de datos + 205 + + + 90 + Entornos de desarrollo + + + 90 + Formación y orientación laboral + + + 140 + Lenguaje de marcas y sistemas de gestión de información + + + 270 + Programación + + + 205 + Sistemas informáticos + + + + + Acceso a Datos + 120 + + + 120 + Diseño de interfaces + + + 65 + Empresa e iniciativa emprendedora + + + 80 + Programación de servicios y procesos + + + 80 + Programación multimedia y dispositivos móviles + + + 40 + Inglés técnico para grado superior + + + + + DAW + Técnico Superior en Desarrollo de Aplicaciones Web + + + Bases de datos + 205 + + + 90 + Entornos de desarrollo + + + 90 + Formación y orientación laboral + + + 140 + Lenguaje de marcas y sistemas de gestión de información + + + 270 + Programación + + + 205 + Sistemas informáticos + + + + + Desarrollo web en entorno cliente + 115 + + + 180 + Desarrollo web en entorno servidor + + + 85 + Despliegue de aplicaciones web + + + 115 + Diseño de interfaces web + + + 30 + Proyecto de desarrollo de aplicaciones web + + + 40 + Inglés técnico para grado superior + + + 65 + Empresa e iniciativa emprendedora + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..174e58b --- /dev/null +++ b/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + aadd_act1_12 + aadd_act1_12 + 0.0.1-SNAPSHOT + + + + tools.jackson.dataformat + jackson-dataformat-xml + 3.0.0 + + + + src + + + maven-compiler-plugin + 3.13.0 + + 24 + + + + + \ No newline at end of file diff --git a/src/es/palomafp/aadd/inm/GestorInstitutoXML.java b/src/es/palomafp/aadd/inm/GestorInstitutoXML.java new file mode 100644 index 0000000..b5c6f90 --- /dev/null +++ b/src/es/palomafp/aadd/inm/GestorInstitutoXML.java @@ -0,0 +1,122 @@ +package es.palomafp.aadd.inm; + +import java.io.File; +import java.util.Scanner; + +import tools.jackson.databind.JsonNode; +import tools.jackson.databind.ObjectMapper; +import tools.jackson.databind.node.ArrayNode; +import tools.jackson.dataformat.xml.XmlMapper; + +/** + * + * GestorInstitutoXML: Clase que procesa un fichero XML de un instituto + * utilizando Jackson + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 26 sept 2025 + */ + +public class GestorInstitutoXML { + private static final String RUTA_FICHERO_XML = "informacion-IES.xml"; + + public static void main(String[] args) { + GestorInstitutoXML gestor = new GestorInstitutoXML(); + + Scanner scanner = new Scanner(System.in); // Crear el scanner + + System.out.print("Introduce una opción de procesamiento XML: \n"); + String opcion = scanner.nextLine(); // Leer una opción introducida. + + switch (opcion) { + case "1": + System.out.println("Imprimir instituto"); + gestor.imprimirInstituto(); + break; + case "2": + System.out.println("Imprimir ciclos"); + gestor.imprimirCiclos(); + break; + case "3": + System.out.println("Imprimir módulos que empiezan por 'Programa'"); + gestor.imprimirModulosPrograma(); + break; + } + + scanner.close(); + } + + private void imprimirInstituto() { + JsonNode nodoRaiz = obtenerJsonNodeDeFichero(); // El nodo raíz es el nodo "instituto" (y únicamente hay uno). + // Obtener los atributos del nodo "instituto" + String nombreInstituto = nodoRaiz.path("nombre").asString(); + String tipoInstituto = nodoRaiz.path("tipo").asString(); + + System.out.println("Nombre del Instituto: " + nombreInstituto + " - Tipo del Instituto: " + tipoInstituto); + } + + private void imprimirCiclos() { + JsonNode nodoRaiz = obtenerJsonNodeDeFichero(); + // Obtener los nodos "ciclo" + ArrayNode ciclos = convertirJsonNodeEnArrayNode(nodoRaiz.path("ciclo")); + + for (JsonNode ciclo : ciclos) { + String codigo = ciclo.path("codigo").asString();// Accedemos al atributo 'codigo' + String nombreCorto = ciclo.path("nombre_corto").asString();// Accedemos al atributo 'nombre corto' + + System.out.println("Ciclo - Código: " + codigo + ", Nombre Corto: " + nombreCorto); + + } + } + + private void imprimirModulosPrograma() { + JsonNode nodoRaiz = obtenerJsonNodeDeFichero(); + + // Obtener los nodos "ciclo" + ArrayNode ciclos = convertirJsonNodeEnArrayNode(nodoRaiz.path("ciclo")); + for (JsonNode ciclo : ciclos) { + // Obtener los nodos "curso" + ArrayNode cursos = convertirJsonNodeEnArrayNode(ciclo.path("curso")); + for (JsonNode curso : cursos) { + // Obtener los nodos "modulo" + ArrayNode modulos = convertirJsonNodeEnArrayNode(curso.path("modulo")); + + for (JsonNode modulo : modulos) { + String titulo = modulo.path("titulo").asString(); + if (!titulo.isEmpty() && titulo.startsWith("Programa")) { + String id = modulo.path("id").asString(); + String referencia = modulo.path("ref").asString(); + String numeroHoras = modulo.path("numerohoras").asString(); + + System.out.println("Modelo: - Id: " + id + ", Referencia: " + referencia + ", Título: " + titulo + + ", Número de horas: " + numeroHoras); + } + } + + } + + } + + } + + private JsonNode obtenerJsonNodeDeFichero() { + // Cargar el XML + XmlMapper xmlMapper = new XmlMapper(); + JsonNode root = xmlMapper.readTree(new File(RUTA_FICHERO_XML)); + + return root; + } + + private ArrayNode convertirJsonNodeEnArrayNode(JsonNode node) { + ObjectMapper mapper = new ObjectMapper(); + if (node.isArray()) { + return (ArrayNode) node; + } else { + ArrayNode arrayNode = mapper.createArrayNode(); + if (!node.isMissingNode()) { + arrayNode.add(node); + } + return arrayNode; + } + } +} diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..9bdf3b1 --- /dev/null +++ b/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,4 @@ +Manifest-Version: 1.0 +Build-Jdk-Spec: 21 +Created-By: Maven Integration for Eclipse + diff --git a/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.properties b/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.properties new file mode 100644 index 0000000..2cf605a --- /dev/null +++ b/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Wed Oct 22 18:09:00 CEST 2025 +artifactId=aadd_act1_12 +groupId=aadd_act1_12 +m2e.projectLocation=C\:\\Users\\Isidoro NM\\02-AccesoDatos-2AMT\\workspace\\aadd_act1_12 +m2e.projectName=aadd_act1_12 +version=0.0.1-SNAPSHOT diff --git a/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.xml b/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.xml new file mode 100644 index 0000000..174e58b --- /dev/null +++ b/target/classes/META-INF/maven/aadd_act1_12/aadd_act1_12/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + aadd_act1_12 + aadd_act1_12 + 0.0.1-SNAPSHOT + + + + tools.jackson.dataformat + jackson-dataformat-xml + 3.0.0 + + + + src + + + maven-compiler-plugin + 3.13.0 + + 24 + + + + + \ No newline at end of file