XML y JSON
XML y JSON
mostrar los datos en una página web. Este ejemplo incluye archivos HTML, JavaScript, XML y JSON.
Este archivo HTML cargará el JavaScript que lee y muestra los archivos XML y JSON.
-El archivo HTML tiene dos secciones (xml-output y json-output) donde se mostrarán los datos de XML
y JSON respectivamente.
-Se incluye el archivo app.js al final del body para que el código JavaScript sea ejecutado después de
que se cargue el HTML.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"> <!-- Especifica la codificación de caracteres UTF-8 para manejar caracteres
especiales -->
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <!-- Hace que la página
sea responsiva para adaptarse a diferentes dispositivos -->
<title>Leer XML y JSON con JavaScript</title> <!-- El título que se mostrará en la pestaña del
navegador -->
</head>
<body>
<h1>Demostración: Leer archivos XML y JSON</h1> <!-- Encabezado principal de la página -->
<!-- Aquí enlazamos el archivo app.js que contiene el código JavaScript -->
<script src="app.js"></script>
</body>
</html>
Este archivo XML será leído por JavaScript y sus datos serán mostrados en la página.
Este es un archivo XML básico que contiene una lista de personas con sus nombres, edades y
ciudades.
<?xml version="1.0" encoding="UTF-8"?> <!-- Define el tipo y la codificación del archivo XML -->
<personas> <!-- Raíz del documento XML -->
<persona> <!-- Primer objeto "persona" en el archivo XML -->
<nombre>Juan Pérez</nombre> <!-- Nombre de la persona -->
<edad>30</edad> <!-- Edad de la persona -->
<ciudad>Madrid</ciudad> <!-- Ciudad de la persona -->
</persona>
<persona> <!-- Segundo objeto "persona" -->
<nombre>María García</nombre> <!-- Nombre de la persona -->
<edad>25</edad> <!-- Edad de la persona -->
<ciudad>Barcelona</ciudad> <!-- Ciudad de la persona -->
</persona>
</personas>
contiene un objeto con una propiedad personas, que es una lista de objetos con las mismas
propiedades que el archivo XML (nombre, edad y ciudad).
{
"personas": [
{
"nombre": "Carlos Martínez", /* Nombre de la primera persona */
"edad": 40, /* Edad de la primera persona */
"ciudad": "Sevilla" /* Ciudad de la primera persona */
},
{
"nombre": "Ana López", /* Nombre de la segunda persona */
"edad": 35, /* Edad de la segunda persona */
"ciudad": "Valencia" /* Ciudad de la segunda persona */
}
]
}
Este archivo contendrá el código que leerá y procesará los archivos XML y JSON, y mostrará los datos
en la página.
1. Función `loadXML()`:
- Usa `fetch()` para cargar el archivo `data.xml`.
- La respuesta del `fetch()` se convierte en texto porque los archivos XML no son JSON.
- El texto se parsea usando `DOMParser()` para convertirlo en un documento DOM XML.
- Se obtiene cada elemento `persona` del archivo XML usando `getElementsByTagName()`.
- Se extraen los valores de `nombre`, `edad` y `ciudad` para cada persona.
- Se construye un HTML dinámico y se inserta en el div con el id `xml-output`.
2. Función `loadJSON()`:
- Usa `fetch()` para cargar el archivo `data.json`.
- La respuesta se convierte en JSON.
- Se itera sobre cada objeto `persona` y se extraen los valores de `nombre`, `edad` y `ciudad`.
- Se construye un HTML dinámico y se inserta en el div con el id `json-output`.
3. Función `window.onload`:
- Llama a las funciones `loadXML()` y `loadJSON()` cuando la página web se ha cargado, lo que
garantiza que se lean ambos archivos y se muestren los datos en la página.
Resumen de flujo:
- El archivo HTML contiene secciones (`divs`) donde se mostrará la información extraída de los
archivos XML y JSON.
- El archivo JavaScript utiliza `fetch()` para leer los archivos, y luego muestra los datos procesados en
la página.
- La lógica para procesar XML y JSON es similar, con la principal diferencia de cómo se maneja cada
formato de datos.
Ciclo de vida:
Cuando la página carga (window.onload), se ejecutan las funciones loadXML() y loadJSON() para cargar
y procesar los archivos XML y JSON respectivamente.
Este código te permite cargar y mostrar de forma dinámica los datos de archivos XML y JSON en una
página web.