Встраивание XSL-кода в тег <a> - PullRequest
7 голосов
/ 19 августа 2010

У меня есть некоторые данные XML, которые включают в себя URI. Я хочу перечислить URI на странице ASP, но также сделать их кликабельными, используя теги <a> Однако XSLT не позволяет вам встраивать команду XSL в тег, например:

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

Как включить URL в тег <uri> после кода <a href="?

Ответы [ 3 ]

11 голосов
/ 19 августа 2010

Используйте элемент <xsl:attribute> , чтобы иметь нефиксированный атрибут.

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

Редактировать: Как уже упоминалось, это такжеможно использовать шаблоны значений атрибутов :

<a href="{.}" alt="More information" target="_blank">
  <xsl:value-of select="." />
</a>
5 голосов
/ 19 августа 2010

Используйте

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

Попробуйте использовать AVT (Attribute-Value-Templates) по возможности (для всех атрибутов, кроме атрибута select) Это делает код короче и более читабельным.

4 голосов
/ 19 августа 2010

В дополнение к использованию (упоминается в ответе KennyTM) также возможно использовать сокращенную запись "{}" при работе с атрибутами:

<a href="{.}"><xsl:value-of select="." /></a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...