Можно ли проверить формат изображения в XSL?

#
Можно ли проверить формат изображения в XSL?
Здравствуйте! Можно ли как-то проверить формат изображения в XSL?
Типа
<xsl:when test="image_small = ''*.png">

Модератор
#
Re: Можно ли проверить формат изображения в XSL?
В XSL хэлпдеска есть пример. Темплейт определения расширения:

<!-- Определение расширения файла -->
<xsl:template name="Extension">
   <xsl:param name="string" select="string"/>

   <!-- Получаем подстроку после точки -->
   <xsl:variable name="ext">
      <xsl:value-of select="substring-after($string, '.')"/>
   </xsl:variable>

   <xsl:choose>
      <!-- Если есть точка в подстроке -->
      <xsl:when test="contains($ext, '.')">
         <xsl:call-template name="Extension">
            <xsl:with-param name="string" select="$ext"/>
         </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
         <xsl:value-of select="$ext"/>
      </xsl:otherwise>
   </xsl:choose>
</xsl:template>


Сам вызов:

<!-- Определяем расширения файла -->
<xsl:variable name="extension">
   <xsl:call-template name="Extension">
      <xsl:with-param name="string" select="image_small"/>
   </xsl:call-template>
</xsl:variable>

<xsl:choose>
   <xsl:when test="$extension='png'">
      ...
   </xsl:when>
</xsl:choose>


Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Можно ли проверить формат изображения в XSL?
alexander.egorov, спасибо за наводку. но у меня почему-то не срабатывает. Хочу в модификациях оформить галерею вот так, чтобы когда изображение, то выходило изображение из-доп.свойства, а когда pdf то иконка pdf.

Делаю так:


<xsl:for-each select="property_value[tag_name='img_gall'][file !='']">

   <a class="imgs" href="{../dir}{file}" data-fancybox="item_gall{$modID}">
   
      <!-- Определяем расширения файла -->
      <xsl:variable name="extension">
         <xsl:call-template name="Extension">
           <xsl:with-param name="string" select="file_small"/>
         </xsl:call-template>
      </xsl:variable>
                     
      <xsl:choose>                     
         <xsl:when test="$extension!='png'">      
            <img class="gal" src="{../dir}{file}" alt="{name}"/>
         </xsl:when>
         <xsl:when test="$extension!='jpg'">      
            <img class="gal" src="{../dir}{file}" alt="{name}"/>
         </xsl:when>
         <xsl:when test="$extension!='pdf'">      
            <img class="gal" src="/img/pdf.png" alt="{name}"/>
         </xsl:when>
         <xsl:otherwise>                        
         </xsl:otherwise>
      </xsl:choose>   
                  
   </a>
   
</xsl:for-each>

<!-- Определение расширения файла -->
   <xsl:template name="Extension">
      <xsl:param name="string" select="string"/>

      <!-- Получаем подстроку после точки -->
      <xsl:variable name="ext">
         <xsl:value-of select="substring-after($string, '.')"/>
      </xsl:variable>

      <xsl:choose>
         <!-- Если есть точка в подстроке -->
         <xsl:when test="contains($ext, '.')">
            <xsl:call-template name="Extension">
               <xsl:with-param name="string" select="$ext"/>
            </xsl:call-template>
         </xsl:when>
         <xsl:otherwise>
            <xsl:value-of select="$ext"/>
         </xsl:otherwise>
      </xsl:choose>
   </xsl:template>
Модератор
#
Re: Можно ли проверить формат изображения в XSL?
1. Печатайте $extension и проверяйте правильно ли выделяется расширение из имени файла.
2. Не понял если честно логику вашего <xsl:choose>. Почему проверяется на !=  ?
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Можно ли проверить формат изображения в XSL?
alexander.egorov, все разобрался. Это я не внимательный. Встраивал код вызова не туда))) Спасибо большое за приведенный код
Авторизация