Ciao a tutti ho questo file xml da cui dovrei estrappolare :
1) l'elenco di tutti gli studenti con il valore di età maggiore di 22
2) per ogni studente il terzo risultato presente in risultati
trovo difficoltà nel punto 2 dove devo mettere accanto ai dati estrappolati dal terzo risultato presente in risultati accanto al nome dello studente! Ad esempio il risultato dovrebbe essere :
Chris Taylor Statistica1 voto D però nella mia trasformazione prendo solo statistica 1 voto D senza il nome dello studente.
XSLcodice:<studenti> <studente id="100026"> <nome>Chris Taylor</nome> <eta>27</eta> <disciplina>biologia</disciplina> <risultati> <risultato corso="Matematica" voto="C-"/> <risultato corso="Biologia" voto="C+"/> <risultato corso="Statistica1" voto="D"/> </risultati> </studente> <studente id="100078"> <nome>Bob Barners</nome> <eta>26</eta> <disciplina>Fisica</disciplina> <disciplina>Tecnologia</disciplina> <risultati> <risultato corso="Matematica" voto="A"/> <risultato corso="XML" voto="A-"/> <risultato corso="Fisica" voto="B+"/> <risultato corso="XML2" voto="A"/> </risultati> </studente> <studente id="100079"> <nome>Elias Grodin</nome> <eta>21</eta> <disciplina>Fisica</disciplina> <disciplina>ProgrammazioneXML</disciplina> </studente> </studenti>
codice:<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <head> <title>prova scritta</title> </head> <body> <table border="1"> <thead> <tr bgcolor="yellow"> <th>Nome Studente</th> <th> eta</th> </tr> </thead> <xsl:for-each select="studenti/studente"> <xsl:if test="eta > 22"> <tbody> <tr> <td><xsl:value-of select="nome"/> </td> <td><xsl:value-of select="eta"/> </td> </tr> </tbody> </xsl:if> </xsl:for-each> </table> <hr/> <table border="1"> <thead> <tr bgcolor="red"> <th>Nome studente</th> <th>Corso</th> <th>voto</th> </tr> </thead> <xsl:for-each select="//risultato[3]"> <tbody> <tr> <td><xsl:value-of select="nome"/></td> <td><xsl:value-of select="@corso"/></td> <td><xsl:value-of select="@voto"/></td> </tr> </tbody> </xsl:for-each> </html> </xsl:template> </xsl:stylesheet>

Rispondi quotando