2017-02-10 1 views
1

I Unterstrich dazwischen dem Link und erstellt als unterschiedlicher Attributwert eingefügt werden soll:benötigen Symbol zwischen der bestimmten Instanz einzufügen

Meine XML-Eingabe ist:

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

XSL Ich verwenden als:

i
<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> 

Ausgang bekam wie:

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

Aber ich brauche die Ausgabe als Bilder-v1 mit dem Dateinamen zu kommen braucht, und ich brauche Symbol dazwischen dass

Erwartete Ausgabe unterstreichen:

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

Bitte geben Sie einen Vorschlag für diese. Vielen Dank im Voraus

Antwort

0

Änderung

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

zu

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

Sie können den unten XSLT2.0 Code verwenden:

<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> 

Die Werte in Klammern als XPath-Ausdrücke ausgewertet werden, wenn verwendet für Attribute.

+0

Dank @Linga. Das funktioniert auch gut !!!! – User501

Verwandte Themen