Está en la página 1de 4

EJERCICIOS DE REPASO

EJERCICIO 4. Dado el XML de la Fig.5:

1. Indica qué errores hacen que no sea un XML


bien formado.

2. Elabora un fichero de transformación XSL el


cual obtenga un subconjunto del XML
presentado con la idea de recrear un
cd-recopilatorio con sólo aquellas canciones
que superen los 3 minutos de duración. Toma
como referencia el ejemplo adjunto en la Fig
6.

3. A partir del XML obtenido con la


transformación propuesta en el punto 2,
escribe la cadena JSON equivalente a dicha
estructura. Almacena esta en una variable
JS.

4. Realiza las siguientes operaciones:

● Obtén a partir de la cadena un objeto JSON


con el que poder trabajar.
● Obtén la info del 2º track al completo.
● Cambia el nombre del primer track por “Real Fig.5
Love”.
● Elimina la segunda canción.

● Asume la existencia de una tabla HTML con


una única fila de encabezados cuyo id es
”my_tab”. Inserta nuevas filas de datos en
función del total de canciones que finalmente
contiene la estructura JSON.
● Retorna el objeto JSON a una representación
de cadena de texto reutilizando la variable
declarada en en el primer punto.

Utiliza document.getElementById() para


apuntar a dicha tabla, un bucle y innerHTML.

Se adjunta una tabla en la Fig.7 a modo de ejemplo.


No debes recrear HTML o CSS en este ejercicio.

Fig.6

Fig. 7
1.
Solucion:
No cierra la etiqueta canciones
Utiliza caracteres inválidos

2.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" ident="yes"/>
<xsl:template match="/">
<recopilatorio ref="COMP001">
<titulo>Exitos de siempre</titulo>
<año>2002</año>
<tracks>
<xsl:for-each
select="discografica/cd/canciones/cancion[duracion &gt; 3]">
<track>
<xsl:attribute name="org_number">
<xsl:value-of select="@num"/>
</xsl:attribute>
<nombre><xsl:value-of select="titulo"/></nombre>
<duracion><xsl:value-of select="duracion"/></duracion>
</track>
</xsl:for-each>
</tracks>
</recopilatorio>
</xsl:template>
</xsl:stylesheet>

3.

var txt = '{ "-ref": "COMP001", "titulo": "Exitos de siempre ", "año": "2002",
"track": [ { "-org_number": "01", "nombre": "Yellow submarine", "duracion": "3.5"
}, { "-org_number": "02", "nombre": "Its my life", "duracion": "3.4" } ] }'

{
"-ref": "COMP001",
"titulo": "Exitos de siempre ",
"año": "2002",

"track": [
{
"-org_number": "01",
"titulo": "Yellow submarine",
"duracion": "3.5"
},
{
"-org_number": "02",
"titulo": "It's my life",
"duracion": "3.4"
}
]
}

4.
var obj = JSON.parse(txt);
/*Recorrer la matriz*/

const canciones = obj['track'];


var x="";

for (i in canciones){
x += "<tr>";
x += "<td>" + canciones[i].nombre + "</td>";
x += "<td>" + canciones[i].duracion + "</td>";
x += "</tr>"
}

document.getElementById("ejercicio3").innerHTML = x;

También podría gustarte