You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用XSLT拼接文本与value-of生成图片Href链接?

解决XSLT拼接图片Href链接的问题

嘿,我来帮你搞定这个拼接链接的需求!其实XSLT里做字符串拼接并不复杂,主要是用对函数或者语法就行,下面分不同XSLT版本给你具体方案:

方案1:XSLT 1.0 通用写法(最常用)

XSLT 1.0里可以用concat()函数直接拼接多个字符串,或者用更简洁的属性值模板(大括号语法),两种方法都能搞定:

方法A:使用concat函数

<xsl:template match="你的目标节点">
  <img>
    <!-- 动态生成href属性 -->
    <xsl:attribute name="href">
      <xsl:value-of select="concat(
        'http://server/area/graphic.aspx?ns=', 
        number,  <!-- 这里直接写number节点的XPath,不用套value-of -->
        '&amp;nocache=5555'
      )" />
    </xsl:attribute>
    <!-- 可以添加图片的alt等其他属性 -->
    <xsl:attribute name="alt">动态生成的图片</xsl:attribute>
  </img>
</xsl:template>

方法B:属性值模板(更简洁)

这种写法不用单独写<xsl:attribute>,直接在标签属性里用大括号包裹XPath表达式,XSLT会自动计算并替换:

<xsl:template match="你的目标节点">
  <img 
    href="http://server/area/graphic.aspx?ns={number}&amp;nocache=5555" 
    alt="动态生成的图片" 
  />
</xsl:template>

方案2:XSLT 2.0+ 进阶写法

如果你的环境支持XSLT 2.0及以上,还可以用||运算符来做字符串拼接,写法更直观:

<xsl:template match="你的目标节点">
  <img 
    href="{ 'http://server/area/graphic.aspx?ns=' || number || '&amp;nocache=5555' }" 
    alt="动态生成的图片" 
  />
</xsl:template>

注意事项

  • 一定要把URL里的&转成&amp;,因为XML语法里不允许直接出现未转义的&,否则会报错。
  • 如果number节点可能为空或者不存在,可以加个判断处理默认值,比如:
    <img href="http://server/area/graphic.aspx?ns={if (normalize-space(number) != '') then number else '0'}&amp;nocache=5555" />
    

内容的提问来源于stack exchange,提问作者Gustavo Jose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:06:09