Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/10/2004, 05:54
Avatar de Helbira
Helbira
 
Fecha de Ingreso: octubre-2001
Ubicación: Sevilla, España
Mensajes: 1.228
Antigüedad: 23 años, 4 meses
Puntos: 5
Si por lo que sea no pudieras cambiar ya la estructura de tu XML hice una aproximación a como lo podrias solucionar:

<xsl:for-each select="reg">

<xsl:variable name="id_actual">
<xsl:value-of select="id_class" />
</xsl:variable>

<xsl:choose>
<xsl:when test="//reg[id_class_father=$id_actual]">
<xsl:value-of select="'TIENE HIJOS!! Se puede imprimir el titulo de la tabla.'" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'NO TIENE HIJOS'" />
</xsl:otherwise>
</xsl:choose>

</xsl:for-each>

Pero es un código no terminado y mucho menos probado.. quizás necesite retoques... seguramente los necesite... porque creo que // te busca del nodo actual hacia abajo del XML y por tanto no comprobaría los reg anteriores al actual... De todas formas.. si siempre los hijos se van a encontrar por debajo pues no habría problema.

Si te estancas con ese codigo intentaria hacerte un ejemplo completo y que se pueda probar pero ahora no me da tiempo a mas.

Quiero resaltar que la solución de cabral es la mas acertada. incluso te ahorrarias indicar la etiqueta del padre de cada reg. Yo optaria por reestructurar el XML. Es mas elegante en forma de arbol y se ve mas claro quien es hijo de quien.

Un beso
__________________
BUSCO TELETRABAJO
Experiencia de mas de 4 años como desarrolladora web en PHP, ASP, XML, XSL, JavaScript, MySQL, PostGres, SQLServer, ...