Re: [xsl] get value from link from last slash

Subject: Re: [xsl] get value from link from last slash
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Wed, 14 Nov 2007 14:06:06 +0530
Please try this 1.0 stylesheet:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                       version="1.0">
	
  <xsl:output method="text" />

  <xsl:template match="/links">
    <xsl:for-each select="link">
      <xsl:variable name="result">
        <xsl:call-template name="getImageName">
          <xsl:with-param name="imgPath" select="." />
        </xsl:call-template>
      </xsl:variable>
      <xsl:value-of select="$result" /><xsl:text>&#xa;</xsl:text>
    </xsl:for-each>
  </xsl:template>

 <xsl:template name="getImageName">
   <xsl:param name="imgPath" />

   <xsl:choose>
     <xsl:when test="contains($imgPath, '/')">
       <xsl:call-template name="getImageName">
         <xsl:with-param name="imgPath"
select="substring-after($imgPath, '/')" />
       </xsl:call-template>
     </xsl:when>
     <xsl:otherwise>
       <xsl:value-of select="$imgPath" />
     </xsl:otherwise>
   </xsl:choose>
 </xsl:template>

</xsl:stylesheet>

The input XML is:
<links>
  <link>root/statics/images/image.jpg</link>
  <link>root/images2/image2.jpg</link>
</links>

The output produced by the transform is:
image.jpg
image2.jpg

The logic here mirrors Mike's idea.

On Nov 14, 2007 1:25 PM, Vaduvoiu Tiberiu <vaduvoiutibi@xxxxxxxxx> wrote:
> Hi, I have a little wierd problem. i have an xml where I have a bunch of image links like:
>
> root/statics/images/image.jpg
> root/images2/image2.jpg
>
> is there a way to extract the names of the images using xslt 1.0? I need to extract the names of the images...image.jpg, image2.jp, etc. I thought about using substring but there are more than a slash in the path. Basically I would need the string from the last slash to the end. Sounds a little complicated but is there a way around it? 10x


-- 
Regards,
Mukul Gandhi

Current Thread