PDA

View Full Version : C'è nessuno che conosce XSL?


Pazzerello
23-02-2005, 19:56
Domando perchè avrei bisogno di un aiutino per completare il mio elaborato da presentare ad un'esame universitario...

in pratica ho creato un sito in JSP strutturato con XML e che dovrebbe essere visualizzato in XSL. Dico dovrebbe perchè ancora questo linguaggio lo sto cercando di capire. Finchè devo rappresentare i dati uscenti dal database in una sola tabella no problem, viene fuori la tabellina tranquillamente con tutti i dati ordinati. Il problema sorge quando devo far visualizzare più tabelle da una query sql. Ossia non mi riesce scompattare a seconda degli attributi (in questo caso si parla di competizioni calcistiche) i dati in tabelle diverse, XSL mi da sempre errore utilizzando tale sintassi dove cercavo secondo la mia logica di creare una tabella diversa per ogni competizione diversa:

<xsl:for-each select="Struttura/Competizione"/>
<h2><xsl:value-of select="Nome"/></h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Anno</th>
<th>Squadra</th>
</tr>
<tr>
<td><xsl:value-of select="Anno"/></td>
<td><xsl:value-of select="Squadra"/></td>
</tr>
</table>
</xsl:for-each>


C'è qualcuno che sa dove la mia logica sbaglia? spero di essere stato abbastanza chiaro.

Grazie
Ciao;)

theClimber
23-02-2005, 21:54
Per provare a chiarire i dubbi, prova a postare anche l'XML su cui dovresti applicare lo stylesheet, altrimenti e' difficile capire se quello che vuoi fare e' nella giusta direzione.....

Inoltre, se devi generare un tabella per ogni competizione, invece di usare cicli for-each sarebbe meglio valutare anche l'uso di apply-templates e template

ciao

Pazzerello
24-02-2005, 09:56
Si giusto, la struttura XML è questa:

<Struttura>
<Competizione>
<Nome></Nome>
<Albo>
<Squadra></Squadra>
<Anno></Anno>
</Albo>
</Competizione>
</Struttra>


Devo tirar fuori per ogni competizione una tabella che abbia un nome e la lista di Squadra e Anno.

Pazzerello
24-02-2005, 11:12
Dopo 2 ore di imprecazioni ci sono riuscito a farlo funzionare con questo codice:



<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
<body>
<xsl:for-each select="Struttura/Competizione">
<h2><xsl:value-of select="Nome"/></h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Anno</th>
<th>Squadra</th>
</tr>
<xsl:for-each select="Albo">
<tr>
<td><xsl:value-of select="Anno"/></td>
<td><xsl:value-of select="Squadra"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>




Faccio festa:oink:

zwinglio
24-02-2005, 14:45
Ebbravo Meu...:cool:

Pazzerello
24-02-2005, 17:09
t'aspettavo:D