Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con XSL

Estas en el tema de Problema con XSL en el foro de Programación General en Foros del Web. Q tal gente, Tengo el siguiente problema con una plantilla XSL. Tengo un XML como el que sigue: <root> <nodo1> <codigo>1</codigo> <descripcion>CASA</descripcion> <codigo>2</codigo> <descripcion>DEPTO</descripcion> <codigo>3</codigo> ...
  #1 (permalink)  
Antiguo 08/06/2004, 12:32
 
Fecha de Ingreso: noviembre-2002
Mensajes: 37
Antigüedad: 21 años, 5 meses
Puntos: 0
Problema con XSL

Q tal gente,

Tengo el siguiente problema con una plantilla XSL. Tengo un XML como el que sigue:

<root>
<nodo1>
<codigo>1</codigo>
<descripcion>CASA</descripcion>
<codigo>2</codigo>
<descripcion>DEPTO</descripcion>
<codigo>3</codigo>
<descripcion>EDIFICIO</descripcion>
</nodo1>

<nodo2>
<persona>
<nombre>JOSE</nombre>
<cod_v>1</cod_v>
</persona>
<persona>
<nombre>LUIS</nombre>
<cod_v>3</cod_v>
</persona>
</nodo2>
</root>

Sobre este XML aplico una plantilla XSL de la siguiente forma

<html>
...
...
<xsl:for-each="//nodo2/persona">
<tr>
<td>Nombre</td><td><xsl:value-of select="nombre" /></td>
<td>Desc. Vivienda</td><td>><xsl:value-of select="//nodo1/descripcion[../codigo=cod_v]" /></td>
</tr>
</xsl:for-each>
...
...
</html>


Esto debiese dar lo siguiente

<tr>
<td>Nombre</td><td>JOSE</td>
<td>Desc. Vivienda</td><td>CASA</td>
</tr>
<tr>
<td>Nombre</td><td>LUIS</td>
<td>Desc. Vivienda</td><td>EDIFICIO</td>
</tr>

pero en realidad no muestra nada en pantalla. Esto es super raro, ya q si acceso con un codigo en "duro" me da la descripcion.

Cualquier ayuda es bienvenida.
Saludos,

v7
  #2 (permalink)  
Antiguo 09/06/2004, 04:06
Avatar de Helbira  
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 22 años, 6 meses
Puntos: 5
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<
xsl:template match="/">

<
html>

<head>

<title>Title</title>

</head>

<body>

<
xsl:for-each select="//nodo2/persona">

<
tr>

<
td>Nombre</td><td><xsl:value-of select="nombre"/></td>

<
td>Desc. Vivienda</td><td>><xsl:value-of select="//nodo1/descripcion[../codigo=cod_v]"/></td>

</
tr>

</
xsl:for-each>

</
body>

</
html>

</
xsl:template>

</
xsl:stylesheet>

Llevas en negrita fallitos que tenías:

1. debes englobar el código HTML en algún template
2. te faltaba el atributo select en el for-each
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 12:34.