2010-04-01 10 views
30

Come posso impostare un a href che è sia un collegamento da e ha il testo per un collegamento attraverso una trasformazione XSLT? Ecco quello che ho finora, che mi dà l'errore "xsl: value-of può non essere un figlio del xsl: elemento di testo":Impostazione xsl: value-of in un attributo href e il campo di testo di un collegamento in un XSLT

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
     <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:text><xsl:value-of select="actionUrl"/></xsl:text> 
</xsl:element> 

risposta

35

<xsl:text> definisce una sezione di testo in un documento XSL. Solo il vero testo normale può andare qui, e non i nodi XML. Hai solo bisogno di <xsl:value-of select="actionUrl"/>, che stamperà comunque il testo.

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
     <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:value-of select="actionUrl"/> 
</xsl:element> 
+0

Solo una nota, ci sembra importante nomina del href prima, e visualizzare il testo secondo come avete fatto. Ho avuto l'opposto che non è riuscito a visualizzare. –

+0

Questo è ingombrante e difficile da leggere, controllare [risposta di lexicore] (http://stackoverflow.com/a/2563083/253468)! – TWiStErRob

4

non ti servono l'elemento xsl:text:

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
    <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:value-of select="actionUrl"/> 
</xsl:element> 
26

si può anche fare:

<a href="{actionUrl}"><xsl:value-of select="actionUrl"/></a> 
+0

Grazie, Dimitre, un errore di battitura. Troppi EL ultimamente. – lexicore

+1

In realtà, actionurl non è una variabile - solo un nome di elemento. Pertanto, thete non deve essere un segno "$" all'inizio del nome. –

Problemi correlati