2017-02-10 11 views
1

Я хочу, чтобы вставить символ подчеркивания Inbetween ссылки и создаются как другое значение атрибута:нужно вставить символ между ними конкретным экземпляром

Моего Input XML является:

<img imageid="36" alt="water" height="250" width="400" 
class="right" src="https://irctc.com/Services/Gets/Contents/imagesv1/Images/water" /> 

XSL Я использовал как:

<xsl:template match="img"> 
    <xsl:element name="image"> 
     <xsl:attribute name="id"> 
     <xsl:value-of select="@imageid"/> 
     </xsl:attribute> 
     <xsl:attribute name="alt"> 
     <xsl:value-of select="@alt"/> 
     </xsl:attribute> 
     <xsl:attribute name="height"> 
     <xsl:value-of select="@height"/> 
     </xsl:attribute> 
     <xsl:attribute name="width"> 
     <xsl:value-of select="@width"/> 
     </xsl:attribute> 
     <xsl:attribute name="align"> 
     <xsl:value-of select="@class"/> 
     </xsl:attribute> 
     <xsl:attribute name="href"> 
     <xsl:value-of select="@src"/> 
     </xsl:attribute> 
    </xsl:element> 
    </xsl:template> 

Выход я получил как:

<image id="36" 
alt="water" 
height="250" 
width="400" 
align="right" 
href="https://irctc.com/Services/Gets/Contents/imagesv1/Images/water"/> 

Но я нужен выход, как изображения-v1 должен прийти вместе с именем файла, и мне нужно подчеркнуть символ, что между ними

Ожидаемый выход:

<image id="36" 
alt="water" 
height="250" 
width="400" 
align="right" 
href="imagesv1_water"/> 

Просьба представить предложение для этого. Заранее спасибо

ответ

0

изменение

<xsl:attribute name="href"> 
    <xsl:value-of select="@src"/> 
    </xsl:attribute> 

в

<xsl:attribute name="href"> 
      <xsl:value-of select="tokenize(@src, '/')[position() = last()-2 or position() = last()]" separator="_"/> 
    </xsl:attribute> 
0

Вы можете использовать следующий код: XSLT2.0

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="img"> 
     <xsl:variable name="src_tokens" select="tokenize(@src, '/')"/> 
     <image 
       id="{@imageid}" 
       alt="{@alt}" 
       height="{@height}" 
       width="{@width}" 
       align="{@class}" 
       href="{$src_tokens[7]}_{$src_tokens[9]}" 
       /> 
    </xsl:template> 

</xsl:stylesheet> 

Значение в фигурных скобках оцениваются как XPATH выражение, когда используется для атрибутов.

+0

Благодаря @Linga. Это тоже нормально работает !!!! – User501

 Смежные вопросы

  • Нет связанных вопросов^_^