2010-08-19 10 views
6

Mam pewne dane XML, które zawierają identyfikatory URI. Chcę wyświetlić identyfikatory URI na stronie ASP, ale także, aby były one klikalne przy użyciu tagów <a>. Jednak XSLT nie pozwala osadzić polecenia XSL w tagu, np:Osadzanie kodu XSL wewnątrz znacznika <a>

<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> 

Jak mogę zawierać adres URL w tagu <uri> po kodzie <a href="?

Odpowiedz

11

Użyj the <xsl:attribute> element, aby mieć niezmienny atrybut.

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

Edit: Jak wspominają inni, możliwe jest również użycie attribute value templates:

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

Fantastyczne - wielkie dzięki. – NickM

4

Oprócz korzystania < xsl: attribute> (wspomniano w odpowiedzi KennyTM za) to można również użyć skrótu "{}" podczas pracy z atrybutami:

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

Również bardzo przydatna informacja. Twoje zdrowie. – NickM

5

Zastosowanie:

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

spróbuje użyć AVTS (atrybut-wartość-szablony) miarę możliwości (na wszystkich atrybutów z wyjątkiem atrybutu select). Dzięki temu kod jest krótszy i bardziej czytelny.

Powiązane problemy