Ciao a tutti
cerco di spiegare con un esempio quello che voglio ottenere.
diciamo che io ho un file xml di questa struttura:
<Autori nome='....' codiceA='...'>
<ListaLibri codiceL='...01'>
<ListaLibri codiceL='...02'>
<ListaLibri codiceL='...03'>
<ListaLibri codiceL='...04'>
</Autori>
<Autori....
....
</Autori>
<Libri codiceL='....' costo='...' titolo='...' .../>
<Libri codiceL='....' costo='...' titolo='...' .../>
<Libri codiceL='....' costo='...' titolo='...' .../>
.......
<Libri codiceL='....' costo='...' titolo='...' .../>
Bene. Voglio ottenere tramite elaborazione foglio xslt una stampa che produca per ogni autore i libri (titolo e costo) che ha scritto ricavandolo dalla lista dei libri sottonodi del nodo Autori tramite una comparazione degli attributi codiceL di ListaLibri e di Libri
Qualcuno sa come si fa?
Io Ho intrapreso questa strada:
<xsl:for-each select="ListaLibri ">
<xsl:variable name="codiceLibro" select="@codiceL"/>
<xsl:call-template name="Autori-libri">
<xsl:with-param name="identificativoLibro" select="$codiceLibro"/>
</xsl:call-template>
</xsl:for-each>
il cui template è il seguente:
<xsl:template name="Autori-libri">
<xslaram name="identificativoLibro"/>
codice del libro:{$identificativoLibro}
<xsl:if test="//Libri /@codiceL=$identificativoLibro">
Titolo <xsl:value-of select="//Libri /@titolo"/>
ma non funziona granchè, entra un numero giusto di volte ma scrive sempre e solo il primo??
dove sbaglio?
grazie

aram name="identificativoLibro"/>
Rispondi quotando