我正在研究一个CMS功能,用户可以将元数据添加到图像中。选项源用于创建指向原始资源/主页面的反向链接。
这种情况下查找确定,链接应该显示或只是资源。
但是我有问题从a href
链接中删除http(s)://
,因为这看起来不太好(存储在$image_source)
中的链接列表)。
遗憾的是,XSLT 1.0不支持replace()
方法。
有什么简单的解决方法吗?否则,我的选择将是一个更大的模板与substring-after()
。
<xsl:if test="$image_source!=''">
<xsl:choose>
<xsl:when test="starts-with($image_source, 'http://') or starts-with($image_source ,'https://')">
<span class="image-meta-source">
<a href="{$image_source}" title="{$image_title}">
<xsl:value-of select="$image_source"/>
</a>
</span>
</xsl:when>
<xsl:otherwise>
<span class="image-meta-source"><xsl:value-of select="$image_source"/></span>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
通常,我会在这里使用RegEx,但恐怕XSLT 1.0不支持(像许多有用的特性一样)。我可以考虑的正则表达式是^(http|https)://
,但是有机会使用这个吗?
你可以这样写:
<xsl:when test="starts-with($image_source, 'http://') or starts-with($image_source ,'https://')">
<xsl:value-of select="substring-after($image_source, '://')"/>
</xsl:when>