2012-09-21 10 views
5

mi hanno un valore in XSLT e ho bisogno di metterlo in l'attributo data-ora del tag pUmbraco - variabile XSLT in dati attribuire

<xsl:value-of select="current()/eventTime" /> 
<p class="time" data-time="1">Duration: <xsl:value-of select="current()/eventTime" /> hour(s)</p> 

questo crea un errore

<p class="time" data-time="<xsl:value-of select="current()/eventTime" />">Duration: <xsl:value-of select="current()/eventTime" /> hour(s)</p> 

qualche idea di come ottengo questo?

risposta

15

"Value Modelli Attributo" sono tuo amico qui

<p class="time" data-time="{current()/eventTime}"> 
    Duration: <xsl:value-of select="current()/eventTime" /> hour(s) 
</p> 

Le parentesi graffe indicano che questo è un attributo Valore modello, e quindi contiene un'espressione da valutare.

noti che un modo alternativo sarebbe quello di utilizzare il xsl: attributo elemento

<p class="time"> 
    <xsl:attribute name="data-time"> 
     <xsl:value-of select="current()/eventTime" /> 
    </xsl:attribute> 
    Duration: <xsl:value-of select="current()/eventTime" /> hour(s) 
</p> 

Questo non è così elegante però. Avresti davvero bisogno di farlo in questo modo se volessi un nome di attributo dinamico.

+0

bella soluzione elegante grazie. – LeBlaireau

0

Qualcosa di simile?

<xsl:variable name="eventtime" select="current()/eventTime"/> 

<xsl:element name="p"> 
    <xsl:attribute name="class">time</xsl:attribute> 
    <xsl:attribute name="data-time"> 
    <xsl:value-of select="$eventtime" /> 
    </xsl:attribute> 
    Duration: 
    <xsl:value-of select="$eventtime" /> 
</xsl:element>