nrk985
29-04-2007, 23:44
Salve a tutti
ho un file xml fatto così:
<page>
<popups>
<popup id="1" url="qualcosa.jpg">Descrizione dell'immagine</popup>
<popup id="2" url="qualcosa2.jpg">Descrizione dell'immagine2</popup>
</popups>
<panels>
<link type="image" value="1">Link a immagine</link>
</panels>
Con xsl devo trasformarlo in un file HTML e il tag "link" deve diventare appunto un link all'url del "popup" associato al valore (1).
quello che mi sono inventato è una cosa del genere (spezzone dell'xsl):
<xsl:template match="link[@type='image']">
<a href="{/page/popups/popup[@id=@value]/@url}">
<xsl:value-of select="."/>
</a>
</xsl:template>
Questo stampa il link correttamente, ma l'attributo href rimane sempre vuoto e ho provato in mille modi! :muro:
Ho anche letto che nei predicati il context node è fatto dal padre, e cioè "popup" nel mio caso, e se teniamo conto di ciò è ovvio che non funnziona, perchè il context node non contiene l'attributo value (che è situato nel nodo che ha fatto match col template).
C'è un modo per fare quello che voglio?
grazie
ho un file xml fatto così:
<page>
<popups>
<popup id="1" url="qualcosa.jpg">Descrizione dell'immagine</popup>
<popup id="2" url="qualcosa2.jpg">Descrizione dell'immagine2</popup>
</popups>
<panels>
<link type="image" value="1">Link a immagine</link>
</panels>
Con xsl devo trasformarlo in un file HTML e il tag "link" deve diventare appunto un link all'url del "popup" associato al valore (1).
quello che mi sono inventato è una cosa del genere (spezzone dell'xsl):
<xsl:template match="link[@type='image']">
<a href="{/page/popups/popup[@id=@value]/@url}">
<xsl:value-of select="."/>
</a>
</xsl:template>
Questo stampa il link correttamente, ma l'attributo href rimane sempre vuoto e ho provato in mille modi! :muro:
Ho anche letto che nei predicati il context node è fatto dal padre, e cioè "popup" nel mio caso, e se teniamo conto di ciò è ovvio che non funnziona, perchè il context node non contiene l'attributo value (che è situato nel nodo che ha fatto match col template).
C'è un modo per fare quello che voglio?
grazie