Recorrer lista
Publicado por Juan (1 intervención) el 25/03/2021 09:13:10
Hola a todos:
Estoy intentando resolver un ejercicio y estoy totalmente atascado. Tengo una lista en xml, tendrá unos 500 habitantes, y está montada así:
El ejercicio es el siguiente: Todas las localidades separadas por comas (al final un punto), el número de habitantes que tiene cada una de ellas y su porcentaje respecto al total:
Formato: MADRID(Habitantes: 357, Porcentaje: 61.98%), BARCELONA(Habitantes: 19, Porcentaje: 3.30%), ... .
Pues bien, soy incapaz de lograr obtener el valor de i para cada ciudad para poder calcular su porcentaje y el número de habitantes dentro del for-each. He probado esto, pero no me cambia la variable de cada localidad:
Bueno, para ser honesto he probado multitud de opciones pero ninguna me da resultado. Por favor, alguien podría decirme como montar la sentencia? Gracias de antemano
Jose Juan
Estoy intentando resolver un ejercicio y estoy totalmente atascado. Tengo una lista en xml, tendrá unos 500 habitantes, y está montada así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE habitantes>
<habitantes
<habitante dni="123456789F">
<nombre>ANTONIO</nombre>
<apellidos>SANCHEZ FUENTES</apellidos>
<localidad>MADRID</localidad>
<edad>20</edad>
</habitante>
<habitantes
<habitante dni="123456789G">
<nombre>MANUEL</nombre>
<apellidos>ALVAREZ GARCIA </apellidos>
<localidad>BARCELONA</localidad>
<edad>20</edad>
</habitante>
</habitantes>
El ejercicio es el siguiente: Todas las localidades separadas por comas (al final un punto), el número de habitantes que tiene cada una de ellas y su porcentaje respecto al total:
Formato: MADRID(Habitantes: 357, Porcentaje: 61.98%), BARCELONA(Habitantes: 19, Porcentaje: 3.30%), ... .
Pues bien, soy incapaz de lograr obtener el valor de i para cada ciudad para poder calcular su porcentaje y el número de habitantes dentro del for-each. He probado esto, pero no me cambia la variable de cada localidad:
1
2
3
4
5
6
7
8
9
<xsl:variable name="pueblo" select="habitantes/habitante/localidad"/>
<xsl:for-each select="habitantes/habitante">
<xsl:if test="localidad = $pueblo">
<xsl:value-of select="$pueblo"/>
<xsl:text> (Habitantes:</xsl:text>
<xsl:value-of select="count(habitantes/habitante/localidad[localidad = $pueblo])"/>
<xsl:text> , Porcentaje:</xsl:text>
</xsl:if>
</xsl:for-each>
Bueno, para ser honesto he probado multitud de opciones pero ninguna me da resultado. Por favor, alguien podría decirme como montar la sentencia? Gracias de antemano
Jose Juan
Valora esta pregunta


0