Hola a todos, tengo el siguiente XML
Código:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="geografia.xsl"?>
<geografia xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="geografia.xsd">
<continentes>
<continente nombre ="Europa"/>
<continente nombre ="Asia"/>
<continente nombre ="Africa"/>
<continente nombre ="Oceania"/>
<continente nombre ="America"/>
</continentes>
<paises>
<pais continente="Europa">
<nombre>España</nombre>
<km2>1000000</km2>
<poblacion>40000000</poblacion>
</pais>
<pais continente="Asia">
<nombre>China</nombre>
<km2>76767751</km2>
<poblacion>3000000000</poblacion>
</pais>
<pais continente="Asia">
<nombre>Mongolia</nombre>
<km2>4151351325</km2>
<poblacion>678000000</poblacion>
</pais>
<pais continente="Africa">
<nombre>Nigeria</nombre>
<km2>4151351</km2>
<poblacion>145156616</poblacion>
</pais>
<pais continente="America">
<nombre>Bolivia</nombre>
<km2>567151351</km2>
<poblacion>481841848</poblacion>
</pais>
<pais continente="Oceania">
<nombre>Nueva Zelanda</nombre>
<km2>670000</km2>
<poblacion>20560000</poblacion>
</pais>
<pais continente="Europa">
<nombre>Alemania</nombre>
<km2>978000</km2>
<poblacion>50000000</poblacion>
</pais>
</paises>
</geografia>
Mi intencion es recopilar todos estos datos en uan tabla HTML, tal que asi:
Código HTML:
<HTML>
<HEAD>
<TITLE>XPATH4</TITLE>
</HEAD>
<BODY>
<table border="1">
<tr>
<th>Contintente1</th>
<th>Continente2</th>
</tr>
<tr>
<td>Pais</td>
<td>Pais otro</td>
</tr>
</table>
</BODY>
</HTML>
Lo estoy haciendo mediante XSL, y tengo lo siguiente:
Código:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="geografia">
<HTML>
<HEAD>
<TITLE>XPATH4</TITLE>
</HEAD>
<BODY>
<table border="1">
<tr>
<xsl:apply-templates select="continentes/continente"/>
</tr>
<tr>
<xsl:apply-templates select="paises"/>
</tr>
</table>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="continente">
<th>
<xsl:value-of select="@nombre"/>
</th>
</xsl:template>
<xsl:template match="paises">
<xsl:for-each select="geografia/continentes/continente">
<xsl:variable select="@nombre" name="cont"/>
<td>
<xsl:apply-templates select="geografia/paises/pais[@continente = $cont]" />
</td>
</xsl:for-each>
</xsl:template>
<xsl:template match="pais">
<p><b>Pais: </b><xsl:value-of select="nombre"/></p>
<p><b>KM2: </b><xsl:value-of select="km2"/></p>
<p><b>Poblacion: </b><xsl:value-of select="poblacion"/></p>
</xsl:template>
</xsl:stylesheet>
Pero en la salida del xsl solo me sale esto:
Código HTML:
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>XPATH4</TITLE>
</HEAD>
<BODY>
<table border="1">
<tr>
<th>Europa</th>
<th>Asia</th>
<th>Africa</th>
<th>Oceania</th>
<th>America</th>
</tr>
<tr></tr>
</table>
</BODY>
</HTML>
No es lo que deseo. ¿Que estoy haciendo mal?
No se si mi duda esta en el lugar correspondiente de este foro, si no es asi, mis disculpas.
Si no me explique bien sobre la duda que tengo, diganlo por favor.
Muchas gracias! :)