Foros del Web » Creando para Internet » HTML »

Pasar datos XML a XSL en tablas HTML

Estas en el tema de Pasar datos XML a XSL en tablas HTML en el foro de HTML en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 24/03/2016, 04:39
 
Fecha de Ingreso: febrero-2014
Mensajes: 60
Antigüedad: 10 años, 1 mes
Puntos: 0
Pasar datos XML a XSL en tablas HTML

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! :)

Última edición por p3cn0G; 24/03/2016 a las 05:48

Etiquetas: tabla, tablas, text, todo, xml, xsl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:56.