2010-08-19 3 views
6

URI'leri içeren bazı XML verilerim var. URI'leri bir ASP sayfasında listelemek, ancak <a> etiketlerini kullanarak bunları tıklatmak istiyorum. Ancak XSLT örneğin, bir etiketi içindeki bir XSL komutu gömmek için izin vermez:XSL kodunu <a> etiketine gömme

<xsl:for-each select="//uri"> 
    <tr> 
    <td class="tdDetail"> 
     More information 
    </td> 
    <td> 
     <a href="<xsl:value-of select="." />" alt="More information" target=_blank><xsl:value-of select="." /></a> 
    </td> 
    </tr> 
</xsl:for-each> 

nasıl <a href=" kodundan sonra <uri> etiketindeki URL'yi içerebilir?

cevap

11

Sabit olmayan bir özniteliğe sahip olmak için the <xsl:attribute> element kullanın.

<a alt="More information" target="_blank"> 
    <xsl:attribute name="href"> 
    <xsl:value-of select="." /> 
    </xsl:attribute> 
    <xsl:value-of select="." /> 
</a> 

Düzenleme: Diğerleri de söylediğim gibi, aynı zamanda mümkündür attribute value templates kullanmak: Ayrıca

<a href="{.}" alt="More information" target="_blank"> 
    <xsl:value-of select="." /> 
</a> 
+0

Fantastik - çok teşekkürler. – NickM

4

< xsl kullanarak: niteliğini> o (KennyTM en cevapta belirtildiği) özniteliklerle çalışırken "{}" kısayol notasyonunu kullanmak da mümkündür:

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

Ayrıca bilmek çok yararlı. Şerefe. – NickM

5

Kullanım:

<a href="{.}" alt="More information" target="_blank"> 
    <xsl:value-of select="." /> 
</a> 

deneyin kullanmak AVTS (Özellik-Değer-Şablonlar) zaman (bir select öznitelik dışındaki tüm niteliklerini) mümkün. Bu, kodu daha kısa ve daha okunabilir hale getirir.