Skip to content

Commit e04400c

Browse files
authored
Merge pull request mouredev#6352 from eulogioep/main
#12 java, javascript, typescript y php
2 parents 63f81f4 + 024dead commit e04400c

File tree

4 files changed

+495
-0
lines changed

4 files changed

+495
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
import java.io.*;
2+
import java.util.*;
3+
import javax.xml.parsers.*;
4+
import javax.xml.transform.*;
5+
import javax.xml.transform.dom.*;
6+
import javax.xml.transform.stream.*;
7+
import org.w3c.dom.*;
8+
import org.json.simple.*;
9+
import org.json.simple.parser.*;
10+
11+
public class eulogioep {
12+
public static void main(String[] args) {
13+
// Datos de ejemplo
14+
String nombre = "Juan";
15+
int edad = 30;
16+
String fechaNacimiento = "1993-05-15";
17+
List<String> lenguajesProgramacion = Arrays.asList("Java", "Python", "JavaScript");
18+
19+
// Crear y mostrar archivo XML
20+
crearArchivoXML(nombre, edad, fechaNacimiento, lenguajesProgramacion);
21+
System.out.println("Contenido del archivo XML:");
22+
mostrarContenidoArchivo("datos.xml");
23+
24+
// Crear y mostrar archivo JSON
25+
crearArchivoJSON(nombre, edad, fechaNacimiento, lenguajesProgramacion);
26+
System.out.println("\nContenido del archivo JSON:");
27+
mostrarContenidoArchivo("datos.json");
28+
29+
// Borrar archivos
30+
borrarArchivo("datos.xml");
31+
borrarArchivo("datos.json");
32+
33+
// DIFICULTAD EXTRA
34+
// Crear archivos nuevamente para la lectura
35+
crearArchivoXML(nombre, edad, fechaNacimiento, lenguajesProgramacion);
36+
crearArchivoJSON(nombre, edad, fechaNacimiento, lenguajesProgramacion);
37+
38+
// Leer y transformar datos
39+
Persona personaXML = leerXML("datos.xml");
40+
Persona personaJSON = leerJSON("datos.json");
41+
42+
System.out.println("\nDatos leídos del XML:");
43+
System.out.println(personaXML);
44+
System.out.println("\nDatos leídos del JSON:");
45+
System.out.println(personaJSON);
46+
47+
// Borrar archivos nuevamente
48+
borrarArchivo("datos.xml");
49+
borrarArchivo("datos.json");
50+
}
51+
52+
// Método para crear el archivo XML
53+
public static void crearArchivoXML(String nombre, int edad, String fechaNacimiento, List<String> lenguajesProgramacion) {
54+
try {
55+
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
56+
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
57+
58+
// Crear el elemento raíz
59+
Document doc = docBuilder.newDocument();
60+
Element rootElement = doc.createElement("persona");
61+
doc.appendChild(rootElement);
62+
63+
// Agregar elementos hijos
64+
Element nombreElement = doc.createElement("nombre");
65+
nombreElement.setTextContent(nombre);
66+
rootElement.appendChild(nombreElement);
67+
68+
Element edadElement = doc.createElement("edad");
69+
edadElement.setTextContent(String.valueOf(edad));
70+
rootElement.appendChild(edadElement);
71+
72+
Element fechaNacimientoElement = doc.createElement("fechaNacimiento");
73+
fechaNacimientoElement.setTextContent(fechaNacimiento);
74+
rootElement.appendChild(fechaNacimientoElement);
75+
76+
Element lenguajesElement = doc.createElement("lenguajesProgramacion");
77+
for (String lenguaje : lenguajesProgramacion) {
78+
Element lenguajeElement = doc.createElement("lenguaje");
79+
lenguajeElement.setTextContent(lenguaje);
80+
lenguajesElement.appendChild(lenguajeElement);
81+
}
82+
rootElement.appendChild(lenguajesElement);
83+
84+
// Escribir el contenido en un archivo XML
85+
TransformerFactory transformerFactory = TransformerFactory.newInstance();
86+
Transformer transformer = transformerFactory.newTransformer();
87+
DOMSource source = new DOMSource(doc);
88+
StreamResult result = new StreamResult(new File("datos.xml"));
89+
transformer.transform(source, result);
90+
91+
} catch (Exception e) {
92+
e.printStackTrace();
93+
}
94+
}
95+
96+
// Método para crear el archivo JSON
97+
@SuppressWarnings("unchecked")
98+
public static void crearArchivoJSON(String nombre, int edad, String fechaNacimiento, List<String> lenguajesProgramacion) {
99+
JSONObject jsonObject = new JSONObject();
100+
jsonObject.put("nombre", nombre);
101+
jsonObject.put("edad", edad);
102+
jsonObject.put("fechaNacimiento", fechaNacimiento);
103+
jsonObject.put("lenguajesProgramacion", lenguajesProgramacion);
104+
105+
try (FileWriter file = new FileWriter("datos.json")) {
106+
file.write(jsonObject.toJSONString());
107+
} catch (IOException e) {
108+
e.printStackTrace();
109+
}
110+
}
111+
112+
// Método para mostrar el contenido de un archivo
113+
public static void mostrarContenidoArchivo(String nombreArchivo) {
114+
try (BufferedReader br = new BufferedReader(new FileReader(nombreArchivo))) {
115+
String linea;
116+
while ((linea = br.readLine()) != null) {
117+
System.out.println(linea);
118+
}
119+
} catch (IOException e) {
120+
e.printStackTrace();
121+
}
122+
}
123+
124+
// Método para borrar un archivo
125+
public static void borrarArchivo(String nombreArchivo) {
126+
File archivo = new File(nombreArchivo);
127+
if (archivo.delete()) {
128+
System.out.println("El archivo " + nombreArchivo + " ha sido borrado.");
129+
} else {
130+
System.out.println("No se pudo borrar el archivo " + nombreArchivo);
131+
}
132+
}
133+
134+
// DIFICULTAD EXTRA
135+
136+
// Clase personalizada para almacenar los datos
137+
static class Persona {
138+
String nombre;
139+
int edad;
140+
String fechaNacimiento;
141+
List<String> lenguajesProgramacion;
142+
143+
@Override
144+
public String toString() {
145+
return "Persona{" +
146+
"nombre='" + nombre + '\'' +
147+
", edad=" + edad +
148+
", fechaNacimiento='" + fechaNacimiento + '\'' +
149+
", lenguajesProgramacion=" + lenguajesProgramacion +
150+
'}';
151+
}
152+
}
153+
154+
// Método para leer el archivo XML y convertirlo a la clase Persona
155+
public static Persona leerXML(String nombreArchivo) {
156+
Persona persona = new Persona();
157+
try {
158+
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
159+
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
160+
Document doc = dBuilder.parse(new File(nombreArchivo));
161+
doc.getDocumentElement().normalize();
162+
163+
persona.nombre = doc.getElementsByTagName("nombre").item(0).getTextContent();
164+
persona.edad = Integer.parseInt(doc.getElementsByTagName("edad").item(0).getTextContent());
165+
persona.fechaNacimiento = doc.getElementsByTagName("fechaNacimiento").item(0).getTextContent();
166+
167+
persona.lenguajesProgramacion = new ArrayList<>();
168+
NodeList lenguajesList = doc.getElementsByTagName("lenguaje");
169+
for (int i = 0; i < lenguajesList.getLength(); i++) {
170+
persona.lenguajesProgramacion.add(lenguajesList.item(i).getTextContent());
171+
}
172+
} catch (Exception e) {
173+
e.printStackTrace();
174+
}
175+
return persona;
176+
}
177+
178+
// Método para leer el archivo JSON y convertirlo a la clase Persona
179+
public static Persona leerJSON(String nombreArchivo) {
180+
Persona persona = new Persona();
181+
JSONParser parser = new JSONParser();
182+
183+
try (FileReader reader = new FileReader(nombreArchivo)) {
184+
JSONObject jsonObject = (JSONObject) parser.parse(reader);
185+
186+
persona.nombre = (String) jsonObject.get("nombre");
187+
persona.edad = ((Long) jsonObject.get("edad")).intValue();
188+
persona.fechaNacimiento = (String) jsonObject.get("fechaNacimiento");
189+
persona.lenguajesProgramacion = (List<String>) jsonObject.get("lenguajesProgramacion");
190+
} catch (Exception e) {
191+
e.printStackTrace();
192+
}
193+
return persona;
194+
}
195+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
const fs = require('fs');
2+
const xml2js = require('xml2js');
3+
4+
// Datos de ejemplo
5+
const persona = {
6+
nombre: "Juan",
7+
edad: 30,
8+
fechaNacimiento: "1993-05-15",
9+
lenguajesProgramacion: ["JavaScript", "Python", "Ruby"]
10+
};
11+
12+
// Función para crear el archivo XML
13+
function crearArchivoXML(datos) {
14+
const builder = new xml2js.Builder();
15+
const xml = builder.buildObject({ persona: datos });
16+
fs.writeFileSync('datos.xml', xml);
17+
console.log("Archivo XML creado.");
18+
}
19+
20+
// Función para crear el archivo JSON
21+
function crearArchivoJSON(datos) {
22+
fs.writeFileSync('datos.json', JSON.stringify(datos, null, 2));
23+
console.log("Archivo JSON creado.");
24+
}
25+
26+
// Función para mostrar el contenido de un archivo
27+
function mostrarContenidoArchivo(nombreArchivo) {
28+
console.log(`Contenido del archivo ${nombreArchivo}:`);
29+
console.log(fs.readFileSync(nombreArchivo, 'utf8'));
30+
}
31+
32+
// Función para borrar un archivo
33+
function borrarArchivo(nombreArchivo) {
34+
fs.unlinkSync(nombreArchivo);
35+
console.log(`El archivo ${nombreArchivo} ha sido borrado.`);
36+
}
37+
38+
// Función para leer el archivo XML
39+
function leerXML(nombreArchivo) {
40+
const xmlData = fs.readFileSync(nombreArchivo, 'utf8');
41+
return new Promise((resolve, reject) => {
42+
xml2js.parseString(xmlData, (err, result) => {
43+
if (err) {
44+
reject(err);
45+
} else {
46+
resolve(result.persona);
47+
}
48+
});
49+
});
50+
}
51+
52+
// Función para leer el archivo JSON
53+
function leerJSON(nombreArchivo) {
54+
const jsonData = fs.readFileSync(nombreArchivo, 'utf8');
55+
return JSON.parse(jsonData);
56+
}
57+
58+
// Función principal asíncrona
59+
async function main() {
60+
// Crear y mostrar archivo XML
61+
crearArchivoXML(persona);
62+
mostrarContenidoArchivo('datos.xml');
63+
64+
// Crear y mostrar archivo JSON
65+
crearArchivoJSON(persona);
66+
mostrarContenidoArchivo('datos.json');
67+
68+
// Borrar archivos
69+
borrarArchivo('datos.xml');
70+
borrarArchivo('datos.json');
71+
72+
// DIFICULTAD EXTRA
73+
// Crear archivos nuevamente para la lectura
74+
crearArchivoXML(persona);
75+
crearArchivoJSON(persona);
76+
77+
// Leer y transformar datos
78+
try {
79+
const personaXML = await leerXML('datos.xml');
80+
const personaJSON = leerJSON('datos.json');
81+
82+
console.log("\nDatos leídos del XML:");
83+
console.log(personaXML);
84+
console.log("\nDatos leídos del JSON:");
85+
console.log(personaJSON);
86+
} catch (error) {
87+
console.error("Error al leer los archivos:", error);
88+
}
89+
90+
// Borrar archivos nuevamente
91+
borrarArchivo('datos.xml');
92+
borrarArchivo('datos.json');
93+
}
94+
95+
// Ejecutar la función principal
96+
main().catch(console.error);
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?php
2+
3+
// Datos de ejemplo
4+
$persona = [
5+
'nombre' => 'Juan',
6+
'edad' => 30,
7+
'fechaNacimiento' => '1993-05-15',
8+
'lenguajesProgramacion' => ['PHP', 'JavaScript', 'Python']
9+
];
10+
11+
// Función para crear el archivo XML
12+
function crearArchivoXML($datos) {
13+
$xml = new SimpleXMLElement('<persona></persona>');
14+
array_walk_recursive($datos, function($value, $key) use ($xml) {
15+
if (is_array($value)) {
16+
$child = $xml->addChild($key);
17+
foreach ($value as $subvalue) {
18+
$child->addChild('lenguaje', $subvalue);
19+
}
20+
} else {
21+
$xml->addChild($key, $value);
22+
}
23+
});
24+
$xml->asXML('datos.xml');
25+
echo "Archivo XML creado.\n";
26+
}
27+
28+
// Función para crear el archivo JSON
29+
function crearArchivoJSON($datos) {
30+
file_put_contents('datos.json', json_encode($datos, JSON_PRETTY_PRINT));
31+
echo "Archivo JSON creado.\n";
32+
}
33+
34+
// Función para mostrar el contenido de un archivo
35+
function mostrarContenidoArchivo($nombreArchivo) {
36+
echo "Contenido del archivo $nombreArchivo:\n";
37+
echo file_get_contents($nombreArchivo) . "\n";
38+
}
39+
40+
// Función para borrar un archivo
41+
function borrarArchivo($nombreArchivo) {
42+
if (unlink($nombreArchivo)) {
43+
echo "El archivo $nombreArchivo ha sido borrado.\n";
44+
} else {
45+
echo "No se pudo borrar el archivo $nombreArchivo.\n";
46+
}
47+
}
48+
49+
// Función para leer el archivo XML
50+
function leerXML($nombreArchivo) {
51+
$xml = simplexml_load_file($nombreArchivo);
52+
$datos = json_decode(json_encode($xml), true);
53+
return $datos;
54+
}
55+
56+
// Función para leer el archivo JSON
57+
function leerJSON($nombreArchivo) {
58+
$jsonData = file_get_contents($nombreArchivo);
59+
return json_decode($jsonData, true);
60+
}
61+
62+
// Función principal
63+
function main() {
64+
global $persona;
65+
66+
// Crear y mostrar archivo XML
67+
crearArchivoXML($persona);
68+
mostrarContenidoArchivo('datos.xml');
69+
70+
// Crear y mostrar archivo JSON
71+
crearArchivoJSON($persona);
72+
mostrarContenidoArchivo('datos.json');
73+
74+
// Borrar archivos
75+
borrarArchivo('datos.xml');
76+
borrarArchivo('datos.json');
77+
78+
// DIFICULTAD EXTRA
79+
// Crear archivos nuevamente para la lectura
80+
crearArchivoXML($persona);
81+
crearArchivoJSON($persona);
82+
83+
// Leer y transformar datos
84+
$personaXML = leerXML('datos.xml');
85+
$personaJSON = leerJSON('datos.json');
86+
87+
echo "\nDatos leídos del XML:\n";
88+
print_r($personaXML);
89+
echo "\nDatos leídos del JSON:\n";
90+
print_r($personaJSON);
91+
92+
// Borrar archivos nuevamente
93+
borrarArchivo('datos.xml');
94+
borrarArchivo('datos.json');
95+
}
96+
97+
// Ejecutar la función principal
98+
main();
99+
100+
?>

0 commit comments

Comments
 (0)