删除XSLT 1.0中的http(s)://



我正在研究一个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>

相关内容

  • 没有找到相关文章

最新更新