2016-11-04 1 views
1

Я работаю над функцией CMS, где пользователь может добавлять метаданные к изображениям. Источник Option используется для создания обратной ссылки на исходную главную страницу/главную страницу.Удалить http (s): // в XSLT 1.0

Этот случай работает finde для определения, ссылка должна отображаться или только ресурс.

Но у меня есть проблемы с удалением http(s):// из a href ссылки, так как это не выглядит хорошо (ссылка IST хранящуюся в $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 ее e, но afaik это не поддерживается (как много полезных функций) в XSLT 1.0. Регулярное выражение, о котором я мог думать, было бы ^(http|https):// Есть ли шанс использовать это?

+0

не могли бы вы сделать 'подстроку-после ($ image_source, '//')', возможно? –

+0

@TimC Yup, см. Answoer of michael. Я действительно не знаю, почему я пытался сделать это сложным. – TechTreeDev

ответ

3

Вы могли бы использовать что-то вроде:

<xsl:when test="starts-with($image_source, 'http://') or starts-with($image_source ,'https://')"> 
    <xsl:value-of select="substring-after($image_source, '://')"/> 
</xsl:when> 
+0

Ты, сэр, гений, я идиот: D Большое спасибо, я никогда не думал о таком простом решении – TechTreeDev