[xsl] Contains(@href. '/') returns false

Subject: [xsl] Contains(@href. '/') returns false
From: "NILESH PATEL" <jayganesh786@xxxxxxxxxxx>
Date: Fri, 08 Mar 2002 11:31:44 +0000


Dear all,

Following the previous posting of recursive template to find file name from long file path, using following syntex, I get the full path in stead of expected filename only. Is it the bug somewhere?
***********
test.xml
************
<?xml version="1.0" encoding="UTF-8" ?>


<!-- Created by npatel on 08 March 2002, 09:06 -->

<test>
<test_string href="h:/rcs/product/src/software/xml/pml/unit_tests/xml_data/storage.xml#xpointer(//*)" />
</test>


**********
test.xsl
*********
<?xml version="1.0" encoding="UTF-8" ?>

<!--
   Document   : real_partitions.xsl
   Created on : 27 February 2002
   Author     : npatel
   Comment
       purpose of transformation follows.
-->

<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
   xmlns:fo="http://www.w3.org/1999/XSL/Format";>

		<xsl:template name="lastIndexOf">
  <!-- declare that it takes two parameters - the string and the char -->
  <xsl:param name="string" />
  <xsl:param name="char" />
  <xsl:choose>
     <!-- if the string contains the character... -->
     <xsl:when test="contains($string, $char)">
        <!-- call the template recursively... -->
        <xsl:call-template name="lastIndexOf">
           <!-- with the string being the string after the character
                -->
           <xsl:with-param name="string"
                           select="substring-after($string, $char)" />
           <!-- and the character being the same as before -->
           <xsl:with-param name="char" select="$char" />
        </xsl:call-template>


</xsl:when>
<!-- otherwise, return the value of the string -->
<xsl:otherwise><xsl:value-of select="concat($string, $char)"/> </xsl:otherwise>
</xsl:choose>


	 <!--xsl:value-of select="$string" /-->
</xsl:template>

   <xsl:template match="test">
			<html>
			<head>
				<title>Test of Strings</title>
			</head>
			<body>
			<xsl:for-each select="test_string">
				<xsl:variable name="file">
					<xsl:call-template name="lastIndexOf">
						<xsl:with-param name="string" select="substring-before(@href, '#')" />
							<xsl:with-param name="char" select="/" />
				</xsl:call-template>

				</xsl:variable>
				<xsl:value-of select="$file"/>

			</xsl:for-each>
			</body>
		</html>
 </xsl:template>

</xsl:stylesheet>

*************
test.html
*************
<html xmlns:fo="http://www.w3.org/1999/XSL/Format";>
<head>
<title>Test of Strings</title>
</head>
<body>h:/rcs/product/src/software/xml/pml/unit_tests/xml_data/storage.xml

</body>
</html>

Following the syntax I should get only <body>storage.xml</body>
in output.

If anyone has faced the same situation then please respond.#

Thnaks

Nilesh

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread