在<a> tag</a>中嵌入XSL代码

时间:2010-08-19 13:09:55

标签: xml xslt

我有一些包含URI的XML数据。我想在ASP页面上列出URI,但也可以使用<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>

如何在<uri>代码后的<a href="代码中添加网址?

3 个答案:

答案 0 :(得分:11)

使用the <xsl:attribute> element具有非固定属性。

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

修改:正如其他人所提到的,也可以使用attribute value templates

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

答案 1 :(得分:5)

使用

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

尝试使用AVT (属性 - 值 - 模板)尽可能(在除select属性之外的所有属性上)。这使代码更短,更易读。

答案 2 :(得分:4)

除了使用&lt; xsl:attribute&gt; (在KennyTM的回答中提到)在处理属性时也可以使用“{}”简写表示法:

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